【问题标题】:In python, What does it mean if I assign a variable to a method?在python中,如果我将变量分配给方法,这意味着什么?
【发布时间】:2012-10-24 04:54:21
【问题描述】:

阅读我遇到的 CherryPy 教程

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

那是什么意思?在方法索引的局部范围内暴露了一个变量?如果是这样,我可以改变暴露的价值吗?我认为这与 python 的 MetaObject 协议将类定义公开为对象本身有关。

【问题讨论】:

    标签: python cherrypy metaobject


    【解决方案1】:

    函数是 Python 中的一等对象。函数定义创建一个函数对象并将其绑定到函数的名称。函数对象可以具有属性,这就是您在此处看到的。函数属性的生命周期与函数对象的生命周期绑定,而函数内部的局部变量的生命周期与函数的单次执行绑定。它们是完全分开的。

    【讨论】:

      【解决方案2】:

      不,它不是函数索引的局部变量,而是该函数的属性。 是的,你也可以在函数之外修改它。

      阅读PEP 232关于函数属性。

      示例:

      In [2]: def foo():pass
         ...: 
      
      In [3]: foo.bar="text"
      
      In [4]: foo.bar
      Out[4]: 'text'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多