09-15-周一_15-00-30
This commit is contained in:
@@ -43,7 +43,7 @@ class Dog(Aniaml):
|
|||||||
pass
|
pass
|
||||||
```
|
```
|
||||||
|
|
||||||
继承的有点也是显而易见的:
|
继承的优点也是显而易见的:
|
||||||
|
|
||||||
1. 增加了类的耦合性(耦合性不宜多,宜精)。
|
1. 增加了类的耦合性(耦合性不宜多,宜精)。
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ class Dog(Aniaml):
|
|||||||
|
|
||||||
上面的那个例子:
|
上面的那个例子:
|
||||||
|
|
||||||
- Aminal 叫做父类,基类,超类。
|
- Aminal 叫做父类, 基类, 超类。
|
||||||
- Person Cat Dog: 子类,派生类。
|
- Person Cat Dog: 子类,派生类。
|
||||||
|
|
||||||
继承:可以分**单继承,多继承**。
|
继承:可以分**单继承,多继承**。
|
||||||
@@ -64,8 +64,8 @@ class Dog(Aniaml):
|
|||||||
|
|
||||||
在python2x版本中存在两种类.:
|
在python2x版本中存在两种类.:
|
||||||
|
|
||||||
- ⼀个叫**经典类**. 在python2.2之前. ⼀直使⽤的是经典类. 经典类在基类的根如果什么都不写.
|
- ⼀个叫**经典类**. 在python2.2之前. **不显式继承 `object`类**,是 Python2 的默认类定义方式。
|
||||||
- ⼀个叫**新式类**. 在python2.2之后出现了新式类. 新式类的特点是基类的根是object类。
|
- ⼀个叫**新式类**. 在python2.2之后出现了新式类, **显式继承 `object`类**(如 `class MyClass(object)`),是 Python2 引入的改进类模型。
|
||||||
python3x版本中只有一种类:
|
python3x版本中只有一种类:
|
||||||
python3中使⽤的都是**新式类**. 如果基类谁都不继承. 那这个类会默认继承 object
|
python3中使⽤的都是**新式类**. 如果基类谁都不继承. 那这个类会默认继承 object
|
||||||
|
|
||||||
@@ -137,10 +137,10 @@ p1.eat()
|
|||||||
|
|
||||||
### 同时执行类以及父类方法
|
### 同时执行类以及父类方法
|
||||||
|
|
||||||
方法一:如果想执行父类的func方法,这个方法并且子类中夜用,那么就在子类的方法中写上:父类.func(对象,其他参数)
|
方法一:如果想执行父类的func方法,这个方法并且子类中调用,那么就在子类的方法中写上:父类.func(对象,其他参数)
|
||||||
|
|
||||||
```python
|
```python
|
||||||
class Aniaml(object):
|
class Aniaml(object):
|
||||||
type_name = '动物类'
|
type_name = '动物类'
|
||||||
def __init__(self,name,sex,age):
|
def __init__(self,name,sex,age):
|
||||||
self.name = name
|
self.name = name
|
||||||
@@ -150,7 +150,7 @@ class Aniaml(object):
|
|||||||
def eat(self):
|
def eat(self):
|
||||||
print('吃东西')
|
print('吃东西')
|
||||||
|
|
||||||
class Person(Aniaml):
|
class Person(Aniaml):
|
||||||
def __init__(self,name,sex,age,mind):
|
def __init__(self,name,sex,age,mind):
|
||||||
Aniaml.__init__(self,name,sex,age)
|
Aniaml.__init__(self,name,sex,age)
|
||||||
self.mind = mind
|
self.mind = mind
|
||||||
@@ -158,14 +158,14 @@ class Person(Aniaml):
|
|||||||
def eat(self):
|
def eat(self):
|
||||||
Aniaml.eat(111)
|
Aniaml.eat(111)
|
||||||
print('%s 吃饭'%self.name)
|
print('%s 吃饭'%self.name)
|
||||||
class Cat(Aniaml):
|
class Cat(Aniaml):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class Dog(Aniaml):
|
class Dog(Aniaml):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
p1 = Person('张三','男',18,'想吃东西')
|
p1 = Person('张三','男',18,'想吃东西')
|
||||||
p1.eat()
|
p1.eat()
|
||||||
```
|
```
|
||||||
|
|
||||||
方法二:利用super,super().func(参数)
|
方法二:利用super,super().func(参数)
|
||||||
@@ -417,6 +417,4 @@ merge操作示例:
|
|||||||
= [A,B,D,C,E,F] + merge([O], [O])
|
= [A,B,D,C,E,F] + merge([O], [O])
|
||||||
= [A,B,D,C,E,F,O]
|
= [A,B,D,C,E,F,O]
|
||||||
|
|
||||||
那既然python提供了. 为什么我们还要如此⿇烦的计算MRO呢? 因为笔
|
那既然python提供了. 为什么我们还要如此⿇烦的计算MRO呢? 因为笔试.......你在笔试的时候, 是没有电脑的. 所以这个算法要知道. 并且简单的计算要会. 正式项⽬开发的时候很少有⼈这么去写代码.
|
||||||
试.......你在笔试的时候, 是没有电脑的. 所以这个算法要知道. 并且简单的计算要会. 正式项⽬
|
|
||||||
开发的时候很少有⼈这么去写代码.
|
|
Reference in New Issue
Block a user