我知道问题标题听起来很奇怪,但由于英语不是我的第一语言,我发现很难正式化。但是,我也许可以用更多的文字来解释它。
问题是,例如,我正在尝试创建一个名为“Foo”的类。
# ../myProject/Foo.py
class Foo:
'''Represents an example class for stackoverflow'''
现在所有 Foo 类的实例都有function
属性,它只包含一个可以通过实例执行的函数。此外,还有一个parameters
属性、一个元组或一个列表,其中包含在调用时应该使用的参数function
。
def __init__(self, function, parameters):
self.function = function
self.parameters = parameters
def callFunction(self):
if self.function:
self.function(*self.parameters)
这似乎工作正常,但是,问题是,我想给它一个默认值,以更改实例的属性。我基本上想做以下事情:
def __init__(self, function=setattr, \
parameters=(self, "togglableAttribute", not self.togglableAttribute)):
这样做会提高NameError: name 'self' is not defined
. 我应该如何实现它才能让它工作,或者我应该想出一个解决方法?