python——面向对象,继承
"""
继承:子类继承父类
1.单继承,多继承
2. 子类调用或重用父类的同名属性和方法
3. 多层
4.私有属性和私有方法
class 类名(object<父类>)
""" '''单继承'''
# # 父类
# class A(object):
# def __init__(self):
# self.num = 1
#
# def info_print(self):
# print(self.num)
#
#
# # 子类
# class B(A):
# pass
#
#
# def main1():
# r = B()
# r.info_print() # 1 """
多继承:默认使用第一个父类的同名属性和方法
重写:若子类和父类有同名属性和方法,则调用子类的
子类调用父类的同名属性和方法:注意 self
多层继承, 父子孙 super:子类重写了父类方法,并在重写方法中调用父类方法
super(当前类,self).当前方法
私有属性:限制继承,在属性名和方法名前面加上两个__,
只能在类里面访问,获取get_xx,修改set_xx
""" def __info_prin():
print('这是私有方法') class Master:
def __init__(self):
self.kongfu = '[古法煎饼]'
self.__money = 10000 # 私有属性 def __make_cake(self):
return f'用{self.kongfu}制作煎饼果子' \
f'花费了{self.__money}¥' # t1 = Master()
# print(t1._Master__money)
# # 10000 ,运用命名的变换成功访问私有属性
# print(t1._Master__make_cake)
# # 打印了t1地址,需有一个变量来接收 """
另一种理解:
实际上私有属性存在一个坑点,即通过换名仍然可以访问私有属性;
命名时最好以_开头(一种规范);
用getter(访问器)和setter(修改器)来访问与修改属性值;
用 @property装饰器 来包装getter和setter方法;
""" class School:
def __init__(self, kongfu, money):
self._kongfu = kongfu
self._money = money # 访问器 - getter方法
@property
def money(self):
return self._money @property
def kongfu(self):
return self._kongfu # 修改器 - setter方法
@money.setter
def money(self, money):
self._money = money def make_cake(self):
print(f'用{self._kongfu}制作煎饼{self._money}') # school = School('有名法', 100)
# school.make_cake()
# school.money = 10
# school.make_cake()
# # school.kongfu = '古法' AttributeError: can't set attribute
python——面向对象,继承的更多相关文章
- python 面向对象 继承 派生 组合
具体参考博客:http://www.cnblogs.com/linhaifeng/articles/6182264.html#_label12 一.面向对象 面向对象:对象与对象之间的相互交互,不可预 ...
- Python面向对象-继承和多态特性
继承 在面向对象的程序设计中,当我们定义一个class时候,可以从现有的class继承,新的class成为子类,被继承的class称为基类,父类或超类. 比如,编写一个名为Animal的class: ...
- Python面向对象继承案例
面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活 ...
- Python 面向对象--继承,实现,依赖,关联,聚合,组合
一. 继承 继承指的是子类继承父类除私有内容以外的其他所有内容, 并且子类具有增加自己新内容的能力. 举例说明: class Animal: print("吃是动物的本能") cl ...
- Python面向对象 -- 继承和多态、获取对象信息、实例属性和类属性
继承和多态 继承的好处: 1,子类可以使用父类的全部功能 2,多态:当子类和父类都存在相同的方法时,子类的方法会覆盖父类的方法,即调用时会调用子类的方法.这就是继承的另一个好处:多态. 多态: 调用方 ...
- python面向对象 : 继承
一. 初识继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类. 当我们在定义多个类的时候,发现要用到相同的方法或变量,如 ...
- Python面向对象----继承, 重载
1. 面向对象三大特性之继承. 继承的便捷是子类可以直接调用父类里面的方法和属性.(在强类型语言里面是只能调用公有成员), 不用重复的造轮子. 减少程序猿的负担.实现多态等上层结构 2. 父类代码 3 ...
- python 面向对象 继承
什么是继承 继承表达的是一种”是“的关系,比如人是动物 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 继承是基于抽象的结 ...
- python面向对象继承
class A(object):pass # 括号中可称为父类,基类,超类 class B:pass # 父类,基类,超类 class A_son(A,B):pass # 子类,派生类 class A ...
- 028.Python面向对象继承(单继承,多继承,super,菱形继承)
一 继承的概念 种类 单继承 多继承 至少两个类: 子类:一个类继承另外一个类,那么该类是子类(也叫作衍生类) 父类:另外一个,这个被继承的类,叫做父类(也叫作超类),object 在python中 ...
随机推荐
- 页面置换算法之Clock算法
1.前言 缓冲池是数据库最终的概念,数据库可以将一部分数据页放在内存中形成缓冲池,当需要一个数据页时,首先检查内存中的缓冲池是否有这个页面,如果有则直接命中返回,没有则从磁盘中读取这一页,然后缓存到内 ...
- WTL Hello World
构建最简单的WTL Hello World程序,基于:WTL91_5321_Final + VS2013 + WIN7 添加->新建项目 为了简单起见,我们删除一些button和对应的处理代码( ...
- 应用层vc实现三种文件监视方法
http://hi.baidu.com/sadusaga/item/daa0d4b764c6dd76254b09cc http://bbs.csdn.net/topics/280032788 http ...
- ELK:收集Docker容器日志
简介 之前写过一篇博客 ELK:日志收集分析平台,介绍了在Centos7系统上部署配置使用ELK的方法,随着容器化时代的到来,容器化部署成为一种很方便的部署方式,收集容器日志也成为刚需.本篇文档从 容 ...
- 构建ROP链实现远程栈溢出
通常情况下栈溢出可能造成的后果有两种,一类是本地提权另一类则是远程执行任意命令,通常C/C++并没有提供智能化检查用户输入是否合法的功能,同时程序编写人员在编写代码时也很难始终检查栈是否会发生溢出,这 ...
- javascript 集合 Object Array Map Set
//Object //创建 var obj = {} function obj(){} class obj{} //Array api Array属性和方法: for 条件判断: break cont ...
- ubuntu下怎么配置/查看串口-minicom工具
一.安装minicom工具: 可直接使用命令sudo apt-get install minicom来完成安装 上面的截图因为检测到我已经安装过了. 二.通过minicom工具配置串口: 1.启动mi ...
- Digital Twin 数字孪生
GE的一个NB视频:http://v.youku.com/v_show/id_XMjk0NTMzODIyNA==.html http://www.gongkong.com/news/201701/35 ...
- kubernetes集合
kubernetes集合 kubernetes(1):kubernetes简介和组件 kubernetes(2):yum安装kubernetes kubernetes(3):kubeadm安装k8s1 ...
- Angular组件通信
一. 组件间通信(组件间不能互相调用,公共方法放在服务中) (目前项目采用将公共方法直接写在ts文件中没使用服务) ng g service services/服务名 App.module.ts{ 引 ...