"""
继承:子类继承父类
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——面向对象,继承的更多相关文章

  1. python 面向对象 继承 派生 组合

    具体参考博客:http://www.cnblogs.com/linhaifeng/articles/6182264.html#_label12 一.面向对象 面向对象:对象与对象之间的相互交互,不可预 ...

  2. Python面向对象-继承和多态特性

    继承 在面向对象的程序设计中,当我们定义一个class时候,可以从现有的class继承,新的class成为子类,被继承的class称为基类,父类或超类. 比如,编写一个名为Animal的class: ...

  3. Python面向对象继承案例

    面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活 ...

  4. Python 面向对象--继承,实现,依赖,关联,聚合,组合

    一. 继承 继承指的是子类继承父类除私有内容以外的其他所有内容, 并且子类具有增加自己新内容的能力. 举例说明: class Animal: print("吃是动物的本能") cl ...

  5. Python面向对象 -- 继承和多态、获取对象信息、实例属性和类属性

    继承和多态 继承的好处: 1,子类可以使用父类的全部功能 2,多态:当子类和父类都存在相同的方法时,子类的方法会覆盖父类的方法,即调用时会调用子类的方法.这就是继承的另一个好处:多态. 多态: 调用方 ...

  6. python面向对象 : 继承

    一. 初识继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类. 当我们在定义多个类的时候,发现要用到相同的方法或变量,如 ...

  7. Python面向对象----继承, 重载

    1. 面向对象三大特性之继承. 继承的便捷是子类可以直接调用父类里面的方法和属性.(在强类型语言里面是只能调用公有成员), 不用重复的造轮子. 减少程序猿的负担.实现多态等上层结构 2. 父类代码 3 ...

  8. python 面向对象 继承

    什么是继承 继承表达的是一种”是“的关系,比如人是动物 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 继承是基于抽象的结 ...

  9. python面向对象继承

    class A(object):pass # 括号中可称为父类,基类,超类 class B:pass # 父类,基类,超类 class A_son(A,B):pass # 子类,派生类 class A ...

  10. 028.Python面向对象继承(单继承,多继承,super,菱形继承)

    一 继承的概念 种类 单继承 多继承 至少两个类: 子类:一个类继承另外一个类,那么该类是子类(也叫作衍生类) 父类:另外一个,这个被继承的类,叫做父类(也叫作超类),object 在python中 ...

随机推荐

  1. qt creator源码全方面分析(2)

    目录 doc文件夹 帮助文档 qdoc工具 doxygen工具 qtcreator.qdocconf qtcreator-dev.qdocconf doc文件夹 对于bin和dist文件夹这里就不做过 ...

  2. DRF框架之Serializer序列化器的序列化操作

    在DRF框架中,有两种序列化器,一种是Serializer,另一种是ModelSerializer. 今天,我们就先来学习一下Serializer序列化器. 使用Serializer序列化器的开发步骤 ...

  3. OpenDJ入门 | 5分钟快速入门Forgerock DS

    本教程为了让大家快速体验,故不做深入讲解,详细内容请留意后续进阶教程 介绍 OpenDJ是一个目录服务器,它实现了各种轻量级目录访问协议和相关标准,包括完全符合LDAPv3,但也支持目录服务标记语言( ...

  4. LeetCode 381. Insert Delete GetRandom O(1) - Duplicates allowed O(1) 时间插入、删除和获取随机元素 - 允许重复(C++/Java)

    题目: Design a data structure that supports all following operations in averageO(1) time. Note: Duplic ...

  5. 文件传输基础----Java IO流

    编码问题 一个很著名的奇怪现象:当你在 windows 的记事本里新建一个文件,输入"联通"两个字之后,保存,关闭,然后再次打开,你会发现这两个字已经消失了,代之的是几个乱码!呵呵 ...

  6. 如何为wordpress 添加favicon

    制做一张16px×16px(像素)大小的图片命名favicon并修改扩展名为.ico,即favicon.ico文件! 方法1:将favicon.ico图标上传到WordPress博客空间的根目录(方法 ...

  7. Codeforces_799

    A.求两个时间比较一下. #include<bits/stdc++.h> using namespace std; int n,t,k,d; int main() { ios::sync_ ...

  8. 牛客练习赛52 C 烹饪(容斥+扩展欧几里得)

    来源:https://ac.nowcoder.com/acm/contest/1084/D 思路来源:https://www.cnblogs.com/Morning-Glory/p/11521114. ...

  9. MySQL关系型数据库基础操作

    MySQL基础 一.MySQL常用数据类型 1.常用数值类型(INT,DOUBLE,FLOAT) ① int 或者 integer 类型: 大小(字节):4字节: 范围: (有符号: -2147483 ...

  10. 开源APM系统 HttpReports 在 .Net Core的应用

    前言 简单说明下,APM全称Application Performance Management应用性能管理,通过各种收集请求数据,同时搭配Dashboard以实现对应用程序性能管理和故障管理的系统化 ...