def A():
def B():
#do something
a = A()
a.B()
Python で上記 (このような単純なコード) ができないのはなぜですか? A() をクラスに変換しない「pythonic」(読みやすく、驚くべきことではなく、ハッキーではない) 回避策はありますか?
編集 1:上記は、B が A に対してローカルであるため、A が評価されている間だけ存在すると説明されました。それで、それをグローバルにすると (そしてオーバーライドしないように注意してください)、なぜこれが機能しないのでしょうか?
def A():
def B():
#do something
return A()
a = A()
a.B()
「NoneType」オブジェクトを返していると言います。