阅读CherryPy教程我遇到了这个
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
这是什么意思?是在方法索引的局部范围内公开变量?如果是这样,我可以公开改变的价值吗?我认为它与python的MetaObject协议有关,它将类定义公开为对象本身。
答案 0 :(得分:4)
函数是Python中的第一类对象。函数定义创建一个函数对象并将其绑定到函数的名称。函数对象可以有属性,这就是你在这里看到的。函数属性的生命周期约束了函数对象的生命周期,而函数内局部变量的生命周期则绑定到函数的单个执行。它们是完全分开的。
答案 1 :(得分:2)
不,它不是函数索引的局部变量,而是它是该函数的属性。 是的,你也可以在功能之外修改它。
阅读关于功能属性的PEP 232。
示例:
In [2]: def foo():pass
...:
In [3]: foo.bar="text"
In [4]: foo.bar
Out[4]: 'text'