Python中的权限控制

面向对象的三大特征:

1.封装:隐藏内部细节,对外提供操作方式。

权限控制:是通过对属性或方法添加单下划线、双下划线以及首尾下划线来实现

单下划线开头:以单下划线开头的属性或方法表示protected受保护的成员,这类成员仅供内部使用,允许类本身和子类进行访问,但实际上它可以被外部代码访问。

双下划线开头:表现private私有的成员,这类成员只允许定义该属性或方法的类本身进行访问

首尾双下划线:一般表示特殊的方法

2.继承:是在函数调用时,使用“形参名称=值”的方式进行传参,传递参数顺序可以与定义时参数的顺序不同。

3.多态:是在函数定义时,直接对形式参数进行赋值,在调用时如果该参数不传值,将使用默认值,如果该参数传值,则使用传递的值。

class Student():
    #首尾双下划线
    def __init__(self,name,age,gender):
        self._name=name#self._name受保护的,只能本类和子类访问
        self.__age=age#self.__age表示私有的,只能类本身去访问
        self.gender=gender#普通的示例属性,类的内部,外部,及子类都可以去访问
    def _fun1(self):#受保护的
        print('子类及本身都可以访问')
    def __fun2(self):#私有的
        print('只有定义的类可以访问')
    def show(self):#普通的示例方法
        self._fun1()
        self.__fun2()
        print(self._name)
        print(self.__age)
#创建一个学生类的对象
stu=Student('dsg',19,'男')
#类的外部
print(stu._name)
# print(stu.__age)
#调用受保护的实例方法
stu._fun1()
#私有方法
# stu.__fun2()
print(stu._Student__age)
stu._Student__fun2()
print(dir(stu))

 

你可能感兴趣的:(Python,python,开发语言)