我喜歡製作真正的模塊化程序,但很難追蹤哪些功能是其他功能的子程序。因此,我想定義父函數內的子例程。用Python的函數對象定義,這將是一個有力的實現:如何製作模塊化功能?
>>> def football():
... self = football
...
... logo = "Nike"
...
... self.display_logo(self)
...
>>> def display_logo(self):
... print(self.logo)
>>> football.display_logo = display_logo
>>> football()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 6, in football
File "<stdin>", line 2, in display_logo
AttributeError: 'function' object has no attribute 'logo'
不幸的是,這是行不通的。它也不是通過嘗試自己訪問「標識」來工作的。我可以用自己定義函數中的每個變量。前綴,但是有沒有更實用的方法來創建可以在調用時訪問父函數內部變量的子例程?
你應該考慮做一個類,而不是試圖用普通函數做這個。 – BrenBarn