考虑以下示例:
class foo:
def __init__(self):
print ("Constructor")
def testMethod(self,val):
print ("Hello " + val)
def test(self):
ptr = self.testMethod("Joe") <---- Anyway instead of calling self.testMethod with parameter "Joe" I could simple bind the parameter Joe to a variable ?
ptr()
k = foo()
k.test()
在定义中test
是否可以创建一个变量,在调用时使用参数self.testMethod
调用方法"Joe"
?
答案 0 :(得分:1)
您可以将名称传递给构造函数(并将其存储在类实例上),然后可以访问这些方法:
class Foo:
def __init__(self, name):
print("Constructor")
self.name = name
def testMethod(self):
print("Hello " + self.name)
def test(self):
self.testMethod()
如下:
k = Foo("Joe")
k.test() # prints: Hello Joe
答案 1 :(得分:1)
使用functools.partial()
object或lambda
表达式:
from functools import partial
ptr = partial(self.testMethod, 'Joe')
或
ptr = lambda: self.testMethod('Joe')