python-面向对象-类的封装-私有方法私有属性

1.封装,就是把客观事物封装成抽象的类,并规定类中的数据和方法只让可信的类或对象操作。封装可分为两个层面:
(1)第一层面的封装,创建类和对象时,分别创建两者的名称,只能通过类名或者对象名加“.”的方式访问内部的成员和方法,前面介绍的例子其实都是这一层面的封装。
(2)第二层面的封装,类中把某些成员和方法隐藏起来,或者定义为私有,只在类的内部使用,在类的外部无法访问,或者留下少量的接口(方法)供外部访问。

2.私有方法,私有属性的定义

私有方法或私有属性:在属性和名字前面加两个下划线“__”即可。

3.实例

#coding=utf-8
class stu:
    def __init__(self,name,age):
# 定义了两个私有属性__name,__age
        self.__name = name;
        self.__age=age;
# 定义了私有方法__run
    def __run(self):
        print ("run...");
# 定义公有方法getName,目的是使外界能访问私有属性__name,同时使name隐藏起来
    def getName(self):
        name=self.__name;
        return name;
# 定义公有方法getAge,目的是使外界能访问私有属性__age,同时使age隐藏起来
    def getAge(self):
        age=self.__age;
        return age;
#设置age方法
    def setAge(self,youage):
        if youage>120 or youage <1:
            raise Exception("年龄参数错误")
        else:
            self.__age=youage;
    def getRun(self):
        self.__run();
s=stu("tom",20);
#stu.__run();
#print(s.__name,s.__age);
#私有方法run()和私有属性__name,__age都无法直接通过实例和类去调用
#想调用的话,通过第三方公有方法进行。
print(s.getAge());
print(s.getName())
s.getRun();
s.setAge(50)
print(s.getAge());

运行结果:

20
tom
run...
50

 

posted @ 2022-11-30 16:09  家乐福的搬砖日常  阅读(57)  评论(0编辑  收藏  举报