The Python TutorialでPythonの勉強をしていて、現在Classes(第9章)にいるのですが、「スコープと名前空間」の説明中に質問がありました。
著者は次の例を挙げています。
def scope_test():
def do_local():
spam = "local spam"
def do_nonlocal():
nonlocal spam
spam = "nonlocal spam"
def do_global():
global spam
spam = "global spam"
spam = "test spam"
do_local()
print("After local assignment:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)
do_global()
print("After global assignment:", spam)
scope_test()
print("In global scope:", spam)
ソース: http://docs.python.org/3.3/tutorial/classes.html#scopes-and-namespaces-example
私が今まで知っていることから、キーワードdef
は関数を定義するために使用され、関数はクラス内に配置されますが、この場合、彼は関数内で関数を定義しました。つまり、別の関数内のこの関数は何と呼ばれますか?
最初の関数の外側からアクセスできる方法はありますか? たとえば、scope_test が含まれている名前空間から。
関数内のこの関数は、プライベート メソッドの場合、Java や C# などの他のプログラミング言語で呼び出される「ヘルパー メソッド」のように機能しますか?