質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1083閲覧

pythonのメソッド名の構文がわかりません

groggy_egg

総合スコア24

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/05/03 01:53

目的・経緯
Pythonをapk化してAndoridで実行したいと思い
python-for-androidを使おうと思っているのですがエラーが出てしまい、
ImportError: sh 1.12.14 is currently only supported on linux and osx. please install pbs 0.110 (http://pypi.python.org/pypi/pbs) for windows support.

解決策を探してを試したところ「構文エラー」になりました

python

1#site-packages/pythonforandroid/logger.py 2 3#import sh ← 既存のコード 4import pbs -------------- 5class Sh(object):6 def **getattr**(self, attr): 書き加えた箇所 7 return pbs.Command(attr)8sh=Sh() --------------

発生したエラー

def **getattr**(self, attr): ^ SyntaxError: invalid syntax

参考コードに見たことがない構文が使われていたので
どういう処理をしているのか、しようとしているのかがわからず
修正や別な書き換えをしようにもどうすればいいかわからず困っています

↓参考コード

python

1import pbs 2class Sh(object): 3 def **getattr**(self, attr): 4 return pbs.Command(attr) 5sh = Sh()

getattr()については調べたのですが
**メソッド名**については調べても出てこないので
単純に既存のメソッド名と区別するための飾りなのか
特別な機能のある文字なのかがわかりません。

書き換え方などわかる方は教えてください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/03 04:39

参考にした投稿内容そのものが間違っています。Githubの誰かが投稿した内容が必ずしも正しいとは限りませんよ。
groggy_egg

2020/05/04 00:30

そうですね、過信しすぎていました。
guest

回答2

0

ベストアンサー

ここを直せば全体が上手く動作するかどうかは別として、
**getattr**__getattr__のことでしょう。Pythonが内部的に呼び出します。

投稿2020/05/03 02:26

LouiS0616

総合スコア35668

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

groggy_egg

2020/05/04 00:30

わかりました。早速試してみます
dodox86

2020/05/04 00:42

数多ある私が知らないPythonの文法、メソッドの宣言の仕方かと思って注視していました。質問者さんのPython環境では実行できたスクリプトなのかと。(単なる間違いなのですね)
groggy_egg

2020/05/04 01:16

実行したら別なエラーになりました。 やっぱり別な方法を探したほうがいいかもしれません
groggy_egg

2020/05/04 01:42

やはり別な方法を探してみます。 アドバイスありがとうございました。
LouiS0616

2020/05/04 04:01

@dodox86 さん なんかLISPっぽい間違い方なので別の言語にちょっと引っ張られたのかなと思いました。 @groggy_egg さん リンク先のイシューでも、Windowsに対応しない旨書かれているので、ちょっと厳しそうですね。 他の方法を試すのは良いアプローチだと思います。
guest

0

* ってのは演算子なのでメソッド名には使えません。
他の名前にしましょう

投稿2020/05/03 02:15

編集2020/05/03 03:02
y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2020/05/03 02:29

前から疑問だったのですが、y_waiwaiさんはPython書いたことあるんですか?
y_waiwai

2020/05/03 02:32

あ、*が変換されてしまってますね。 あれ、なにかまちがってました?
LouiS0616

2020/05/03 02:35

・ __getattr__は特殊メソッドなので、ユーザが自由に名前を変えられるものではありません。 ・ *がメソッド名に使えないのは事実ですが、それは演算子だからではありません。
y_waiwai

2020/05/03 02:44

果たして質問者は __getattr__のつもりなのかどうか、ってはなしですね。 おそらくこうだからこうでしょう、という回答もいいかと思いますが、 まず、はっきりどこがどうダメというのを答えるのも大事だとも思いますです
LouiS0616

2020/05/03 02:58

Cで例えるならば『井include <stdio.h>』みたいな間違いなので、本来何を書きたいのかは明白に思えます。ただの写し間違いならともかく今回はリンク先そのままのコードですから、質問者さんが戸惑うのも当然です。 回答のスタンスは人それぞれ好みや流儀があるんでしょう。違いは尊重しますが、せめてご自身の流儀内では正確な回答をして頂きたい。
y_waiwai

2020/05/03 03:01

私はよくやらかしますんで、こういうツッコミはありがたいと思ってます これからもよろしくおねがいしますね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問