"unqualified on right hand side"在OOPs(Python)中是什么意思?



我在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 会应用词法范围规则来尝试查找变量,搜索(按顺序(

  • 局部变量(包括函数参数(
  • 任何外部函数的局部变量,如果我们正在处理嵌套函数定义
  • 全局变量
  • 内置变量

最新更新