インスタンスメンバのデフォルトの引数値をメソッドに渡すには?
インスタンスの属性の値を使用してインスタンスメソッドにデフォルトの引数を渡したい:class C:
def __init__(self, format):
self.format = format
def process(self, formatting=self.format):
print(formatting)
これを試してみると、次のエラーメッセージが表示される:
NameError: name 'self' is not defined
メソッドは次のように動作します:
C("abc").process() # prints "abc"
C("abc").process("xyz") # prints "xyz"
ここで問題は何ですか、これはなぜ機能しませんか?そして、どうすればこの仕事をすることができますか?
は、pythonの組み込み関数であるため、変数名としてformatを使用しません。 – Yajushi
'プロセスメソッド 'で' self'の誤りを編集する –