2024-04-24 23:55:29 发布
网友
我想传递类似于成员函数指针的内容。我试了一下。
class dummy: def func1(self,name): print 'hello %s' % name def func2(self,name): print 'hi %s' % name def greet(f,name): d = getSomeDummy() d.f(name) greet(dummy.func1,'Bala')
预期输出是hello Bala
hello Bala
dummy.func1是unbound,因此只需要一个显式的self参数:
dummy.func1
self
def greet(f,name): d = dummy() f(d, name) greet(dummy.func1,'Bala')
因为dummy是类名,所以dummy.fun1是未绑定的。
dummy
dummy.fun1
正如phihag所说,使用dummy的实例绑定方法:
def greet(f,name): d = dummy() f(d, name) greet(dummy.func1, 'Bala')
或者,可以在greet之外实例化dummy:
greet
def greet(f,name): f(name) my_dummy = dummy() greet(my_dummy.func, 'Bala')
您还可以使用functools.partial:
functools.partial
from functools import partial def greet(f,name): f(name) my_dummy = dummy() greet(partial(dummy.func1, my_dummy), 'Bala')
你可以用这样的东西:
class dummy: def func1(self,name): print 'hello %s' % name def func2(self,name): print 'hi %s' % name def greet(name): d = dummy() d.func1(name) greet('Bala')
这样做很好:on codepad
dummy.func1
是unbound,因此只需要一个显式的self
参数:因为
dummy
是类名,所以dummy.fun1
是未绑定的。正如phihag所说,使用
dummy
的实例绑定方法:或者,可以在
greet
之外实例化dummy
:您还可以使用
functools.partial
:你可以用这样的东西:
这样做很好:on codepad
相关问题 更多 >
编程相关推荐