これは比較的単純なはずですが、何かが足りないだけです。クラスに含まれる別のモジュールの関数を利用しようとしています。クラスが関係ないときは簡単にできます。
# a.py
import b
b.name()
--
# b.py
def name():
print "What is your name?"
class details(object):
def age():
print "What is your age?"
ai を実行すると、期待される結果が得られます
名前は何?
ただし、別のモジュールから「def age()」にアクセスしようとすると、問題が発生し続けます。
これまでに試したことのいくつか...
# c.py
import b
b.details.age()
= TypeError: バインドされていないメソッド age() は、details インスタンスを最初の引数として呼び出す必要があります (代わりに何も取得しません)
# c.py
from b import details
details.age()
= TypeError: バインドされていないメソッド age() は、details インスタンスを最初の引数として呼び出す必要があります (代わりに何も取得しません)
# c.py
from b import details
b.details(age)
= NameError: 名前 'b' が定義されていません
他にもいくつか試しましたが、多すぎて合理的に投稿できません。私は何を間違っていますか?これを行うための構文は何ですか? 別のモジュールのクラス内に含まれている関数を実行することさえ可能ですか?
前もって感謝します
EDIT: Mike Grahamが提案したように、すべてのタブをスペースに修正しました