在python中,如果我给一个方法分配一个变量,这意味着什么?
在阅读CherryPy教程时,我遇到了这个问题在python中,如果我给一个方法分配一个变量,这意味着什么?,python,cherrypy,metaobject,Python,Cherrypy,Metaobject,在阅读CherryPy教程时,我遇到了这个问题 class HelloWorld(object): def index(self): return "Hello World!" index.exposed = True 那是什么意思?在方法索引的局部范围内是否公开了一个变量?如果是的话,我能说出expose change的值吗?我认为,将类定义作为对象本身公开与python的元对象协议有关。函数是python中的一流对象。函数定义创建函数对象并将其绑定到函数名。
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
那是什么意思?在方法索引的局部范围内是否公开了一个变量?如果是的话,我能说出expose change的值吗?我认为,将类定义作为对象本身公开与python的元对象协议有关。函数是python中的一流对象。函数定义创建函数对象并将其绑定到函数名。函数对象可以有属性,这就是您在这里看到的。函数属性的生命周期与函数对象的生命周期绑定,而函数内部局部变量的生命周期与函数的单个执行绑定。它们是完全分开的。不,它不是函数索引的局部变量,而是该函数的一个属性。 是的,你也可以在函数之外修改它 阅读有关函数属性的说明 例如:
In [2]: def foo():pass
...:
In [3]: foo.bar="text"
In [4]: foo.bar
Out[4]: 'text'