Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,如果我给一个方法分配一个变量,这意味着什么?_Python_Cherrypy_Metaobject - Fatal编程技术网

在python中,如果我给一个方法分配一个变量,这意味着什么?

在python中,如果我给一个方法分配一个变量,这意味着什么?,python,cherrypy,metaobject,Python,Cherrypy,Metaobject,在阅读CherryPy教程时,我遇到了这个问题 class HelloWorld(object): def index(self): return "Hello World!" index.exposed = True 那是什么意思?在方法索引的局部范围内是否公开了一个变量?如果是的话,我能说出expose change的值吗?我认为,将类定义作为对象本身公开与python的元对象协议有关。函数是python中的一流对象。函数定义创建函数对象并将其绑定到函数名。

在阅读CherryPy教程时,我遇到了这个问题

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'