在构造Foo类的实例之前,我想创建Foo类中定义的方法的实例方法对象,并将其分配给一个变量。然后,我将创建Foo类的实例,并通过变量对新创建的实例执行实例方法对象。这可行吗?如果是,如何?谢谢
我希望我能正确理解你想要这样的东西:
>>> 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
等绑定方法相同的行为。
你的意思是这样的吗:
class Foo:
def __init__(self):
self.g = self.f
def f(self):
print "foo"
foo = Foo()
foo.g()
如果我有误解,请纠正我。
在Python中,实例方法只是便于调用并将self
作为第一个参数传递的函数。你应该能够做这样的事情:
def bar(self):
pass
class Foo(object):
pass
x = bar
f = Foo()
bar(f)