我正在一个项目中,我有一个在其__init__
中接受如下功能的类
class Example:
def __init__(self, func,param1,param2):
self.function=func
self.param1=param1
self.param2=param2
def doSomething(self):
print("hi there")
很明显,当创建此类的实例时,我会将一个函数传递给构造函数。但是,如果我要在该函数中引用doSomething
和param1
,该怎么办。如果我的函数是在类之外定义的,我可以访问它们吗?
例如,假设这是我要传递给构造函数的函数
def func(self):
self.doSomething()
return(self.param1)
如果此函数在类定义中,则显然可以使用。在这种情况下如何使它工作?
答案 0 :(得分:2)
从注释中看起来,这就是您想要的:
class Example:
def __init__(self, func, param1, param2):
self.function = lambda: func(self)
self.param1 = param1
self.param2 = param2
def doSomething(self):
print("hi there")
def func(self):
self.doSomething()
return(self.param1)
example = Example(func, 1, 2)
example.function()
不过,我觉得这是解决您要解决的任何问题的错误方法。