MST

星途 面试题库

面试题:Python类中如何实现简单的属性访问控制

在Python中,通常使用哪些方式来控制类属性的访问权限?请举例说明如何定义一个具有私有属性的类,并提供公共方法来访问和修改该私有属性。
13.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

在Python中,并没有严格意义上的访问权限控制,通常约定以单下划线 _ 开头的属性为 “受保护” 属性,双下划线 __ 开头的属性为 “私有” 属性(但实际也可通过特殊方式访问)。

定义一个具有私有属性的类,并提供公共方法来访问和修改该私有属性示例如下:

class MyClass:
    def __init__(self):
        self.__private_attr = 0  # 私有属性

    def get_private_attr(self):
        return self.__private_attr

    def set_private_attr(self, value):
        if isinstance(value, int) and value >= 0:
            self.__private_attr = value
        else:
            print("Value must be a non - negative integer.")

使用示例:

obj = MyClass()
print(obj.get_private_attr())  # 访问私有属性
obj.set_private_attr(10)  # 修改私有属性
print(obj.get_private_attr())