首页 > 编程语言 >python-面向对象-类的封装-私有方法私有属性

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

时间:2022-11-30 16:24:53浏览次数:35  
标签:__ 封装 name 面向对象 私有 age python self

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

 

标签:__,封装,name,面向对象,私有,age,python,self
From: https://www.cnblogs.com/joyware/p/16938771.html

相关文章

  • Python 日期(字符串格式)增加n天并返回(字符串格式)
    fromdatetimeimportdatetimefromdatetimeimporttimedeltadefdate_add(date_str,days_count=1):date_list=time.strptime(date_str,"%Y-%m-%d")y,......
  • Python3 notes
    Python3基础标识符第一个字符必须是字母表中字母或下划线_。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。在Python3中,可以用中文作为变......
  • Python学习(二):字符串常用函数有哪些?
    1.检验字符串长度:len(str);a="hellopython"len(a)12a="hellopython"len(a[::2])##从头取到尾,隔一个取值的长度6 2.切割字符串:obj.split(str);a="hell......
  • python-解力扣提【两数相加】
    1.题目  2.无任何参考下自己的解题代码 解题思路:i和j在列表索引中循环,不相等且两数相加等于target则返回[i,j] 3.参考大神代码解题思路:1).enumerate多用于在f......
  • Python-pyreqs库,python项目环境迁移(检阅所使用库)
    前言在python项目部署或是迁移时,需要对项目所使用环境也进行迁移,操作方法很多也很复杂,python中提供了pyreqs库,可对项目所使用的python库进行检索并导出为文件,可方便进行环......
  • python第三方包的离线下载方法
    1、准备安装python3.6;配置好pip的阿里云安装环境:在自己电脑的C盘用户目录下新建文件夹pip,里面新建文档pip.inipip.ini输入[global]trusted-host=mirrors.aliyun.comindex-ur......
  • Python高级-多任务线程-笔记
    1.多任务的概念什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务......
  • 【Python】水仙花数、百钱买百鸡、CRAPS游戏、斐波那契数列、完美数、素数
    1.寻找水仙花数水仙花数:是一个3位数,每一位上数字的立方和正好等于它本身,如:13+53+33=153,则153就是一个水仙花数,也称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数......
  • 【推荐】最常见的三种Python字符串格式化的方法!
    在嵌入式编程中,我们可以使用Python辅助编程,尤其在验证一些算法上特别好使。今天给大家介绍几种Python字符串格式化的方法,希望能够帮助到大家,以下是详细的内容:第一种......
  • js面向对象,封装构造函数
    面向对象and面向过程面向对象,只关注对象面向对象更适合软件,他不关注步骤,只关注结果面向过程,只关注过程面向过程更适合硬件,它有每一个步骤,而且它更关注每一步的过程构......