理解 Python 类中的变量作用域
在 Python 类中声明变量一开始可能会令人困惑。本文旨在阐明与类上下文中变量声明相关的不同作用域和细微差别。
一般作用域规则:
实例变量与全局变量:
实例变量(使用 self.(变量名称)声明)的行为与全局变量(在外部声明)不同任何函数或类)。虽然类中声明的所有内容在技术上都是公共的,但实例变量绑定到单个对象实例。
示例:
class Test: a = None # Class variable b = None # Class variable def __init__(self, a): self.a = a # Instance variable
在此示例中,类变量a 和 b 可供所有类函数访问。然而,实例变量 self.a 是特定于每个对象实例的。在 __init__ 中设置 self.a 不会影响类变量 a。
受保护的变量:
虽然 Python 没有明确定义私有或受保护的变量,但以下划线 (_) 被视为受保护。从技术上讲,它们仍然可以在类外访问,但修改它们的名称会阻止访问。
私有变量:
以双下划线 (__) 为前缀的变量被视为私有。它们的名称被破坏,使得很难在类外部直接访问它们。
其他细微差别:
以上是变量作用域在 Python 类中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!