我知道在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
也会被传递?
class A(object):
而不是class A:
来获取“新式类”,这通常更好,也是你应该使用的。 - Chris Morgan