python之路——24

Posted wan2-0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之路——24相关的知识,希望对你有一定的参考价值。

复习

1.面向对象编程
思想:角色的抽象,创建类,实例化,操作实例
2.面向对象的关键字
1.类的静态属性,存储在类的命名空间
2.类名.方法(对象),对象.方法
3.对象可以使用静态变量;类不可以使用对象里的属性
3.组合
一个类的对象是另一个对象的属性

学习内容

1.继承
1.一个类可以被多个类继承
一个类可以继承多个父类(python独有)
2.python3 --新式类,没有继承父类默认继承object类
3.子类拥有init时,不需要调用父类;同样,拥有待调用方法,也就不需要调用父类
4.父类中没有的属性(方法),子类中出现,叫派生属性(派生属性)
5.继承——减少代码的重复
6.继承表示一种子类是父类的关系
7.新式类继承顺序:广度优先
print(类名.mro) # 显示类的调用顺序,只在新式类中存在
经典类采用深度优先
8.super的本质:根据调用者节点位置的广度优先顺序来的

代码区

1. 子类,父类调用关系

class Animal:
    def __init__(self,animal):
        self.animal = animal
        print(in animal init)
        self.func()
    def eat(self):
        print(eat something)
    def drink(self):
        print(drink water)
    def func(self):
        print(in animal func)

class Dog(Animal):
    def __init__(self,kind):
        self.kind = kind
        print(in dog init)
    def guard(self):
        print(guard home)

class Bird(Animal):
    def egg(self):
        print(egg)
    def func(self):
        print(in bird func)

a1 = Dog(teddy)
# print(Dog.animal)
a2 = Bird(bird)

2.

class Animal:
    def __init__(self,age):
        self.age = age
    def eat(self):
        print(eat something)
    def drink(self):
        print(drink water)
    def func(self):
        print(in animal func)

class Dog(Animal):
    def __init__(self,age,kind):
        Animal.__init__(self,age)
        #super().__init__(age)   # 只在新式类中有,python3中所有类都是新式类
        self.kind = kind
    def guard(self):
        print(guard home)

class Bird(Animal):
    def egg(self):
        print(egg)
    def func(self):
        Animal.func(self)
        print(in bird func)

a2 = Bird(11)
# a2.func()
super(Bird,a2).func() # 调用了父类的func

 

以上是关于python之路——24的主要内容,如果未能解决你的问题,请参考以下文章

《Python学习之路 -- Python基础之切片》

python之路——24

Python学习之路---Flask01(2018-07-24)

python之路---24 正则表达式 re模块

Python之路24-内置函数匿名函数

Python之路第八篇:Python基础(24)——面向对象进阶