您的位置:首页 > 编程语言 > Python开发

Python作用域和命名空间

2014-04-28 15:44 423 查看
在介绍类之前,首先我想告诉你一些关于python作用域的规则。类的定义非常巧妙地运用了命名空间,你需要知道范围和命名空间的工作原理以能全面了解接下来发生的。 顺便说一下,关于这节讲到的知识对于任何优秀的python程序员非常有用。

让我们开始以一些定义开始。

命名空间(namespace)是一个从名称到对象的映射。大多命名空间目前用Python字典实现的,但那通常不会被注意(除非为了性能),在将来它可以改变。命名空间的例子是:内置名称的set(包含函数如abs()和内置异常名称);在模块中的全局变量名称;在函数调用时的局部名称。在一定程度上对象的属性赋值形成一个命名空间。掌握命名空间的重要事情是在不同的命名空间绝对没有关系。例如,两个不同的模块都可以不混淆的定义方法maximize。模块的用户必须用模块名称为前缀。 

随便说一下,我习惯上吧每一个跟在点号(.)后面的属性都称为属性(attribute)。例如在表达式z.real。Real是对象z的一个属性。严格意义上讲,在模块中引用的名称都是属性的引用:在表达式modname.funcname,modname是一个模块对象和funcnam是它的一个属性。 在这个例子,这恰好是在于模块属性和在模块定义中的全局变量名称之间的一个简单的映射:它们共享同样的命名空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: