我喜欢制作真正的模块化程序,但很难追踪哪些功能是其他功能的子程序。因此,我想定义父函数内的子例程。用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