在构造类 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
In Python, instance methods are just functions that are convenient to call and pass self
as the first parameter. You should be able to do something like this:
def bar(self):
pass
class Foo(object):
pass
x = bar
f = Foo()
bar(f)
于 2012-09-11T19:53:07.417 回答