1615

8 分钟

#Python 的成员可见性

通过 对象.成员 可以访问对象成员:

# 创建类 class Cat: """ 猫类 """ def __init__(self, name:str): """ 构造函数 参数: name(str):名字 """ self.name = name # 创建 name 属性 # 创建一群猫 cat1 = Cat("Tom") cat2 = Cat("Happy") cat3 = Cat("娘口三三") # 访问 name 属性 print(cat1.name) print(cat2.name) print(cat3.name) # 修改 name 属性 cat1.name = '薛定谔' print(cat1.name)

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#私有成员

私有变量只能被拥有它的对象访问,即只能通过该对象的方法读取和修改。 回顾 命名规则

  • 私有变量使用两个下划线开头,例如 __age_of_yukari

方法也能通过这样的命名成为私有方法

例如,将猫的名字设为私有属性,通过 name 方法读取, set_name 方法修改,并且禁止将猫命名为 薛定谔

# 创建类 class Cat: """ 猫类 """ def __init__(self, name:str): """ 构造函数 参数: name(str):名字 """ self.__name = name # 创建 __name 属性 def name(self) -> str: """ name 方法,获取猫的名字 返回值: str: 猫的名字 """ return self.__name def set_name(self, name:str) -> bool: """ set_name 方法,设置猫的名字 参数: name(str):名字 返回值: bool:是否成功 """ if (name == "薛定谔"): return False self.__name = name return True # 创建对象 cat = Cat("Garfield") print(cat.name()) # 尝试直接读取 try: print('读取 __name 成功', cat.__name) except Exception as e: print('读取 __name 失败') # 尝试命名为薛定谔 cat.set_name("薛定谔") print(cat.name())

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

创建于 2025/5/7

更新于 2025/5/21