質問のヘッダーが奇妙に聞こえるのは承知していますが、英語は私の母国語ではないので、形式化するのは非常に難しいと思います. ただし、もう少しテキストで説明できるかもしれません。
問題は、たとえば「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
ます。これを機能させるには、これをどのように実装する必要がありますか、または回避策を考え出す必要がありますか?