我在python中阅读oops概念时遇到了"右侧不合格"短语,例如self._customer =客户。这句话想解释什么?完整的陈述是
例如,命令
self._customer = customer
将实例变量self._customer
分配给参数customer
;请注意,由于右侧的customer
是非限定的,因此它引用了本地命名空间中的参数。 --Python 中的数据结构和算法 第 72 页
根据Python文档
限定名称
一个虚线名称,显示从模块的全局作用域到该模块中定义的类、函数或方法的"路径",如 PEP 3155 中所定义。对于顶级函数和类,限定名与对象名称相同:
。
当用于引用模块时,完全限定名称表示模块的整个虚线路径,包括任何父包,例如 email.mime.text:
更简单地说,在 Python 中限定名称意味着显式定义其范围。因此,self._customer
是一个限定名(它标识封闭类的实例变量customer
(,而裸customer
引用不指定任何作用域限定。
当名称不合格时,Python 会应用词法范围规则来尝试查找变量,搜索(按顺序(
- 局部变量(包括函数参数(
- 任何外部函数的局部变量,如果我们正在处理嵌套函数定义
- 全局变量
- 内置变量