それは愚かな質問かもしれませんが、私はPythonを初めて使っています。私は次のコードセグメントがどのように可能であるかを理解したいと思います。クラスメソッド内のこの関数はどのようにPythonで動作しますか?
class test:
def main_method(self):
variable = 10;
def sub_method(input):
return input * variable
self.result = sub_method
obj = test()
obj.main_method()
print(obj.result(4))
出力:
私の質問:
私はobj.result(4)
を実行し、sub_method
を保存するインスタンス変数であること、self.result
し、アクセス権を持っていますかの範囲に10とvariable
の値をmain_method
に再実行しないでください。
ありがとうございました。
'sub_method'は自由変数の状態をそれと共に保持しているので。 Pythonは[closures]をサポートしています(https://en.m.wikipedia.org/wiki/Closure_(computer_programming)) –
私はそれについて聞いたことがありません。私はそれをチェックするつもりです。ありがとうございます –
また、用語ニックネ: 'main_method'単なるメソッドではなく、クラスメソッドです。 –