首页 >后端开发 >Python教程 >变量作用域在 Python 类中如何工作?

变量作用域在 Python 类中如何工作?

Patricia Arquette
Patricia Arquette原创
2024-11-19 08:13:02431浏览

How do variable scopes work within Python classes?

Python 类中的变量作用域

作用域变化

在 Python 类中,变量作用域有所不同基于它们的声明位置:

  • 类级变量(外部函数): 可访问所有类函数(公共变量)。
  • 函数局部变量(类函数内部): 仅限于该特定函数(在其范围内)。

self 与全局变量

在类函数中使用 self.(变量名) 声明变量也可以使其可供所有类函数访问。但是,与全局变量不同,这些变量特定于当前实例,不会覆盖类级别变量。

其他细微差别

  • 单个与双下划线前缀: 以单下划线开头的变量(例如 _variable)被视为受保护,只能在类内访问。以双下划线开头的变量(例如 __variable)被破坏并且实际上是私有的。
  • 局部变量:在类函数中声明的变量对于这些函数来说是局部的,并且不影响类范围。

示例

考虑以下类:

class Test:
    a = None
    b = None

    def __init__(self, a):
        print(self.a)
        self.a = a
        self._x = 123
        self.__y = 123
        b = 'meow'
  • a 和 b 是可从任何instance.
  • a 被 __init__ 中特定于实例的 self.a 覆盖。
  • _x 受保护,不是公共 API 的一部分。
  • __y 被损坏且私有到类。
  • b 是只能在 __init__ 中访问的局部变量。

以上是变量作用域在 Python 类中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn