继承的注意事项 | 学习笔记

简介: 快速学习继承的注意事项,介绍了继承的注意事项系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Python 入门 2020年版继承的注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10386


继承的注意事项


内容介绍:

一、Python 里的继承的特点


一、Python 里的继承的特点

class A(object):

def demo_a(self):

print('我是A类里的方法demo_a ' )

def foo(self):

print('我是A类里的foo方法')

class B(object):

def demo_b(self):

print('我是B类里的方法demo_b ‘)

def foo(self):

print('我是B类里的foo方法')

# Python里允许多继承

class C(A,B):  # 如果不写父类,Python3以后,默认继承自object

pass

c = C()

c.demo_a()

c.demo_b()

#如果两个不同的父类有同名方法,有一个类属性可以查看方法的调用顺序

c.foo()

print(c._mro_)  # (, , , )

如果想让 C 能用 A 的方法可以让 A 做 C 的父类,如过还想使用 B 的方法可以让A、B 同时做 C 的父类,Python 里允许多继承

多继承可能会出现一些问题,如果两个不同的父类有同名方法,有一个类属性可以查看方法的调用顺序

class A(object):

pass

class B(object):

def foo(self):

print('我是 B 类里的 foo 方法’)

class c(A):

def foo(self):

print('我是 c 类里的 foo 方法') 

class D(B):

pass 

class x(D,C) :

pass

x = X()

x.foo()

print(x.__mro__)

图片6.png

在此代码中 X 会以深度有限的顺序先查找 D 之后再查找 C。

相关文章
|
Java C++
C++进阶之继承(下)
在 C++ 中,友元关系是不继承的,这意味着基类的友元不能访问派生类的私有和保护成员。 如果一个类被声明为另一个类的友元,那么这个友元类可以访问该类的私有和保护成员。然而,这种访问权限不会被继承到派生类中。即使基类的成员函数被声明为子类的友元,也不能访问子类的私有和保护成员。
|
4月前
|
数据可视化 UED
AnimationController 类的使用场景
【10月更文挑战第18天】这些只是 `AnimationController`类的一部分使用场景,实际上它的应用范围非常广泛,可以根据具体的需求和创意来发挥其作用,为应用添加更多的活力和魅力。在使用 `AnimationController`时,需要结合其他动画组件和相关的动画逻辑来实现具体的动画效果,同时要注意合理控制动画的时长、速度和节奏,以确保动画效果的自然和流畅。
|
8月前
|
存储 Java 程序员
JavaSE——面向对象基础(1/4)-面向对象编程、程序中的对象、对象的产生、对象的执行原理、类和对象的一些注意事项
JavaSE——面向对象基础(1/4)-面向对象编程、程序中的对象、对象的产生、对象的执行原理、类和对象的一些注意事项
66 7
|
C++
42 C++ - 继承概述
42 C++ - 继承概述
57 0
|
9月前
|
存储 安全 Java
【C++进阶】1. 继承
【C++进阶】1. 继承
62 3
|
9月前
|
编译器 C++
C++进阶--继承
C++进阶--继承
|
安全 编译器 C++
C++进阶之继承(上)
在C++中,继承是一种面向对象编程的重要概念,它允许一个类(称为子类或派生类)从另一个类(称为父类、基类或超类)那里继承属性和行为。继承是实现代码重用、构建层次结构以及实现多态性的基础。
|
安全 C++
【C++ 进阶】继承
【C++ 进阶】继承
129 0
|
安全 Java 编译器
C++进阶】一、继承(总)
目录 一、继承的概念及定义 1.1 继承概念 1.2 继承定义 1.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、菱形继承及菱形虚拟继承 7.1 继承的分类 7.2 菱形虚拟继承 7.3 菱形虚拟继承原理 八、继承总结
98 0
C++进阶】一、继承(总)
|
Java Scala 开发者
属性的注意事项|学习笔记
快速学习属性的注意事项。
100 0
属性的注意事项|学习笔记