之路 on it Road.com

受保护的访问修饰符(protected)

类的受保护成员可从类内部访问,也可用于其子类。
不允许其他环境访问它。
这使得子类可以继承父类的特定资源。
通过为实例变量添加前缀 _(下划线),我们可以使其受到保护。

受保护的访问修饰符示例

class employee:
    def __init__(self, name, sal):
        self._name=name    # name 和 sal 是受保护的
        self._salary=sal
e1=Employee("oir",10000)
print(e1._salary)  # salary 是一个受保护的属性
e1._salary=20000
print(e1._salary)

上述程序的输出是

10000 
20000

私有访问修饰符(private)

类的私有成员被拒绝访问类外的环境。
我们只能在类中处理它们。
通过为类的实例变量和函数添加前缀 __(双下划线),我们可以将其设为私有。

私有访问修饰符示例

class employee:
    def __init__(self, name, sal):
        self.__name=name          # name 和 sal 是私有的
        self.__salary=sal
e1=Employee("oir",10000)
print(e1.__salary)  # salary 是私有的属性
e1.__salary=20000
print(e1.__salary)

上述程序的输出:

Traceback (most recent call last):
  File "test.py", line 22, in <module>
    e1=Employee("oir",10000)
NameError: name 'Employee' is not defined

说明:Python 没有任何机制可以有效地限制对任何实例变量或者方法的访问。
Python 使用单下划线或者双下划线作为变量/方法名称的前缀,以匹配受保护和私有访问修饰符的行为。

公共访问修饰符(public)

公共成员(通常是在类中声明的方法)可以从类外部访问。
调用公共方法需要同一个类的对象。
这种私有实例变量和公共方法的安排,保证了数据封装的原则。

公共访问修饰符示例

class employee:
    def __init__(self, name, sal):
        self.name=name
        self.salary=sal
e1=Employee("oir",10000)
print(e1.salary)  # salary 是一个public属性
# 我们可以访问employee类的属性,也可以修改它们的值
e1.salary=20000
print(e1.salary)

上述程序的输出是

10000 
20000
Python 访问修饰符

访问修饰符在面向对象的编程语言中用于限制类的变量和函数的访问。
大多数面向对象的编程语言使用三种类型的访问修饰符,它们是 public、protected 和 private。

日期:2020-09-17 00:10:32 来源:oir作者:oir