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