クラス Foo のインスタンスを構築する前に、クラス Foo で定義されたメソッドのインスタンス メソッド オブジェクトを作成し、それを変数に割り当てたいと思います。次に、クラス Foo のインスタンスを作成し、新しく作成したインスタンスに対して変数を介してインスタンス メソッド オブジェクトを実行します。これは実行可能ですか?もしそうなら、どのように?ありがとう。
質問する
89 次
3 に答える
3
あなたがこのようなものを望んでいることを正しく理解できたと思います:
>>> class Foo(object):
... def __init__(self, msg):
... self.msg = msg
... def speak(self):
... print(self.msg)
...
>>> tell_me = Foo.speak
>>> tell_me(Foo("hello!"))
hello!
はい、可能です。Foo.speak
これは、最初の引数としてインスタンスを渡すことができる呼び出し可能 (関数) であり、 などのバインドされたメソッドから得られるのと同じ動作を取得しますFoo("hello").speak
。
于 2012-09-11T19:52:56.297 に答える
0
次のような意味ですか。
class Foo:
def __init__(self):
self.g = self.f
def f(self):
print "foo"
foo = Foo()
foo.g()
私が誤解している場合は、私を修正してください。
于 2012-09-11T19:52:20.967 に答える
0
self
Python では、インスタンス メソッドは、最初のパラメーターとして呼び出して渡すのに便利な単なる関数です。次のようなことができるはずです。
def bar(self):
pass
class Foo(object):
pass
x = bar
f = Foo()
bar(f)
于 2012-09-11T19:53:07.417 に答える