python面向对象--私有和继承
一、 私有属性和私有方法
应用场景
在实际开发中,对象的某些属性或方法可能只希望在对象的内部使用,而不希望在外部被访问到
私有属性 就是 对象 不希望公开的属性 (属性即类里面的变量)
私有方法 就是 方法 不希望公开的方法
定义方式
在定义属性或方法时,在属性名或者方法名前添加两个下划线,定义的就是私有属性或方法,只能在类里面用。
class My:
def test(self):
self.__password = 123456 #私有属性
def say(self):
print('password',self.__password)
def __set_password(self): #私有方法
self.__password = 7890
def update(self):
self.__set_password() m = My()
m.test() #无输出结果
m.say() #输出:password 123456
m.update() #无输出结果
m.say() #输出:password 7890
参考:https://www.2cto.com/os/201807/763010.html
二、继承
子类继承自父类,可以直接享受父类中已经找到封装好的方法
子类中应该根据自己的需求,封装子类特有的属性和方法
单继承
1,继承的概念 语法和特点
继承的概念:子类拥有父类的所有方法和属性(子类只需封装自己特有的方法和属性)
2,继承的语法
class 类名(父类)
def 子类特有的方法
class Lm:
money = 1000000
house = 5
def driver(self):
print('会开车') class Mcb(Lm):
def about_me(self):
print('我有 %s 钱 ,%s 房子'%(self.money,self.house))
self.driver() def driver(self):
print('会开28个轮子的汽车') m = Mcb()
m.driver() #输出:会开28个轮子的汽车
m.about_me()
#以上代码输出:
会开28个轮子的汽车
我有 1000000 钱 ,5 房子
会开28个轮子的汽车
3. super().方法名():在父类某个方法的基础上增加新功能
class Car: #父类
def run(self):
print('running...')
return 'abc' class NewCar(Car): #子类
def run(self):
# 沿用父类中的功能的同时,再增加下面的新功能
res =super().run() #super()的意思就是找到父类,等同于Car().run()
print('fly...') #增加的父类中没有的功能
print(res) bmw=NewCar()
bmw.run()
#以上代码输出结果如下:
running...
fly...
abc
继承的传递性:(爷爷 父亲 儿子)
1,C类从B类继承,B类又从A类继承
2,那么C类就具有B类和A类的所有的属性和方法
子类拥有父类以及父类的父类中封装的所有的属性和方法
参考:https://www.2cto.com/os/201807/763010.html
python面向对象--私有和继承的更多相关文章
- Python面向对象三要素-继承(Inheritance)
Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...
- Python面向对象中的继承、多态和封装
Python面向对象中的继承.多态和封装 一.面向对象的三大特性 封装:把很多数据封装到⼀个对象中,把固定功能的代码封装到⼀个代码块, 函数,对象, 打包成模块. 这都属于封装思想. 继承:⼦类可以⾃ ...
- python 面向对象 私有属性
__init__构造函数 self.name = name # 属性, 实例变量,成员变量,字段 def sayhi()# 方法, 动态属性 私有属性不对外看到 前面加上__ class role() ...
- Python面向对象之类的继承(2)
1.除了封装,Python面向对象还有继承这一功能,如下代码,这是简单的继承功能. class Animal: def chi(self): print(self.name+' 吃') def he( ...
- Python - 面向对象编程 - 多继承
继承的详解 https://www.cnblogs.com/poloyy/p/15216652.html 这篇文章讲的都是单继承,Python 中还有多继承 Python 多继承的背景 大部分面向对象 ...
- Python()- 面向对象三大特性----继承
继承: 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类(基类或超类),新建的类是所继承的类的(派生类或子类) 人类和狗 有相同的属性, 提取了一个__init__方法,在这 ...
- python 面向对象八 多继承
python是支持多继承的,在设计类的继承关系时,通常,主线都是单一继承下来的.但是,如果需要“混入”额外的功能,通过多重继承就可以实现,这种设计通常称之为MixIn. 为了更好地看出继承关系,以Mi ...
- python 面向对象及封装继承和多态
######装饰器######装饰器的概念 - 装饰器的实现是函数里面嵌套函数;- 装饰器的本质是一个函数, 它可以让其他函数在不需要做任何代码改动的前提下增加额外的功能;- 装饰器需要传递一个函数, ...
- 47、Python面向对象中的继承有什么特点?
继承的优点: 1.建造系统中的类,避免重复操作. 2.新类经常是基于已经存在的类,这样就可以提升代码的复用程度. 继承的特点: 1.在继承中基类的构造(__init__()方法)不会被自动调用,它需要 ...
随机推荐
- 都是分号惹的祸 ORA-00911
使用JMeter连接oracle数据库,访问JDBC 请求,执行结果提示:ORA-00911: ??Ч??? 意思为无效的字符错误 说明了在执行的的SQL语句中出现了无效字符,所以在AQL语句无法通过 ...
- 动态样式语言—LESS基础知识
CSS是一门非程序式语言,缺少逻辑性,不便于维护 LESS在CSS现有语法的基础上,为CSS加入程序式语言的特性 引入了变量.混入.运算.函数等功能,大大简化CSS的编写,降低了CSS的维护成本 LE ...
- POJ 3522 Slim Span(极差最小生成树)
Slim Span Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 9546 Accepted: 5076 Descrip ...
- nginx+keepalived高可用web负载均衡
一:安装环境 准备2台虚拟机,都安装好环境 centos 7keepalived:vip: 192.168.1.112192.168.1.110 nginxip 192.168.1.109 maste ...
- DB9 ------ 接口定义
下图是母座和公座的接口定义: 特别提醒:以上是公座和母座的接口定义,如果是串口线,RXD就变成TXD,以此类推.
- django_admin用法
Django内置的admin Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.con ...
- 1042. Shuffling Machine (20)
Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...
- python 面向对象(三)类与类之间的关系 初始化方法一些类
###################总结################# 面试的时候 让写python一些特殊方法 __init__ 创建对象的时候初始化 __new__对象实例化调用第一个方法 ...
- 使用eclipse粗略统计代码代数【原】
- Junit4学习与使用【转】
参考: http://blog.csdn.net/qqhjqs/article/details/42219037