私はPythonではすべてがオブジェクトへの引数としてメソッドに渡すことができるということを知っています。しかし、私はこれがどのくらい正確に機能するのかを理解しようとしています。だから私は次の例を試していた:引数としてのPythonメソッド
class A:
def __init__(self):
self.value = 'a'
def my_method(self)
print self.value
class B:
def __init__(self):
self.values = 'b'
def my_method(self, method):
method()
a = A()
b = B()
b.my_method(a.my_method)
これは物事がどのように動作するかを見るために書かれた。私は、たとえばmy_method
の引数が呼び出し可能かどうかを確認する必要があることを知っています。今私の質問は:
ここでどのようにメソッドが正確に渡されますか?私は受け取っている出力が 'a'なので、オブジェクトメソッドがパラメータとして渡されたときに実際のオブジェクトがあると思いますか?この場合、a.my_method
を渡すと、インスタンスa
も渡されますか?
もしあなたがPython 2を使っているのであれば、 'class A:'ではなく 'class A(object):'を使って、新しいスタイルのクラスを得るのが一般的です。 –