国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > 成员的可见性 以获得更好的体验。

# 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)

# 私有成员

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

  • 私有变量使用两个下划线开头,例如 __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())
本文 更新于: 2025-06-19 01:15:30 创建于: 2025-06-19 01:15:30