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__()方法)不会被自动调用,它需要 ...
随机推荐
- A1109. Group Photo
Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...
- 利用captcha库绘制验证码
#导包 from captcha.image import ImageCaptcha from PIL import Image import random import time import os ...
- Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment:
Administrator@DESKTOP-EHCTIOR MINGW64 /d/react-native-eyepetizer (master) $ react-native run-android ...
- 第三十篇-ToolBar的使用
效果图: 创建标题栏,将原本的Title隐藏,并在菜单栏中设置选项. 一.拖入一个ToolBar组件,并在res/values/styles.xml中将原本的标题栏隐藏,添加<item name ...
- 斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)
算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了 ...
- 第十一节、Harris角点检测原理(附源码)
OpenCV可以检测图像的主要特征,然后提取这些特征.使其成为图像描述符,这类似于人的眼睛和大脑.这些图像特征可作为图像搜索的数据库.此外,人们可以利用这些关键点将图像拼接起来,组成一个更大的图像,比 ...
- python 中r 和 \r
r'xxx' 转义 如果在前面加r字符,则表示让这个字符串里面的内容失去转义的意义 1 s = r'\n这只是\n' # 字符串中的"\n"只是字符,没有换行的意义了. 2 pri ...
- Android MVP 架构一 View与Presenter
View:主要负责界面的显示及跟数据无关的逻辑,比如设置控件的点击事件等 Presenter:主要负责View与Model的交互 Model:数据部分 ------- MVP的核心是: View层不持 ...
- windows远程桌面无法粘贴复制的问题解决方法
这两天遇到一个困扰我很久的问题,每次通过winodws远程桌面,本地的数据无法通过复制粘贴到远程服务器上.现把我找到的解决方案记录下来分享给大家 一般出现问题可能性比较大的原因就是rdpclip.ex ...
- [USACO07NOV] Milking Time
题目链接 动态规划转化成 DAG 然后拓扑求解的思路 虽然很简单不过感觉这个新思路会很有用! 如果两个事件互不影响并且有先后关系,就可以连一条有向边,跑最长路可以得到最后的最优解 实际上这还是个背包… ...