def A():
def B():
#do something
a = A()
a.B()
爲什麼Python中不可能有上述(這樣簡單的代碼)?是否存在一種「pythonic」(清晰,不出奇,非hacky)的解決方法,它不會將A()轉換爲類?爲什麼Python不能從外部訪問子功能?
編輯1:上面向我解釋了B對A是局部的,因此它只有在A被評估時才存在。所以如果我們把它變成全球性的(並且一定不要讓它被覆蓋),那麼爲什麼這不起作用呢?
def A():
def B():
#do something
return A()
a = A()
a.B()
它說它返回一個'NoneType'對象。
遺憾的是沒有用的,因爲初始化'A.B'有必要調用'A()'至少一次。 :( – prokher
@prokher有必要調用A甚至創建一個嵌套函數,而且每次調用A時它都是一個不同的函數。這是首先嵌套函數的唯一原因。 –