当前位置:
首页 > 编程开发 > Python基础教程 >
-
python基础教程之python基础(24):面向对象三大特性一(继承)(3)
本站最新发布 Python从入门到精通|Python基础教程
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
name = name # 人和狗都有自己的昵称;
self.aggressivity = aggressivity # 人和狗都有自己的攻击力;
self.life_value = life_value # 人和狗都有自己的生命值;
def eat(self):
print('%s is eating'%self.name)
class Dog(Animal):
'''
狗类,继承Animal类
'''
def __init__(self,name,breed,aggressivity,life_value):
super().__init__(name, aggressivity, life_value) #执行父类Animal的init方法
self.breed = breed #派生出了新的属性
def bite(self, people):
'''
派生出了新的技能:狗有咬人的技能
:param people:
'''
people.life_value -= self.aggressivity
def eat(self):
# Animal.eat(self)
#super().eat()
print('from Dog')
class Person(Animal):
'''
人类,继承Animal
'''
def __init__(self,name,aggressivity, life_value,money):
#Animal.__init__(self, name, aggressivity, life_value)
#super(Person, self).__init__(name, aggressivity, life_value)
super().__init__(name,aggressivity, life_value) #执行父类的init方法
self.money = money #派生出了新的属性
def attack(self, dog):
'''
派生出了新的技能:人有攻击的技能
:param dog:
'''
dog.life_value -= self.aggressivity
def eat(self):
#super().eat()
Animal.eat(self)
print('from Person')
egg = Person('egon',10,1000,600)
ha2 = Dog('二愣子','哈士奇',10,1000)
print(egg.name)
print(ha2.name)
egg.eat()
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
name = name # 人和狗都有自己的昵称;
通过继承建立了派生类与基类之间的关系,它是一种'是'的关系,比如白马是马,人是动物。
当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好,比如教授是老师
- >>> class Teacher:
- ... def __init__(self,name,gender):
- ... self.name=name
- ... self.gender=gender
- ... def teach(self):
- ... print('teaching')
- ...
- >>>
- >>> class Professor(Teacher):
- ... pass
- ...
- >>> p1=Professor('egon','male')
- >>> p1.teach()
- teaching
1.5 抽象类与接口类
1.5.1 接口类
继承有两种用途:
一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 。
二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能。
- class Alipay:
- '''
- 支付宝支付
- '''
- def pay(self,money):
- print('支付宝支付了%s元'%money)
- class Applepay:
- '''
- apple pay支付
- '''
- def pay(self,money):
- print('apple pay支付了%s元'%money)
- def pay(payment,money):
- '''
- 支付函数,总体负责支付
- 对应支付的对象和要支付的金额
- '''
- payment.pay(money)
- p = Alipay()
- pay(p,200)
开发中容易出现的问题:
- class Alipay:
- '''
- 支付宝支付
栏目列表
最新更新
python基础(23):面向过程与面向对象的优劣
python基础(24):面向对象三大特性一(继承
python基础(25):面向对象三大特性二(多态、
tesseract-OCR + pytesseract安装
Python爬虫(学习准备)
Python输出16进制不带0x补零,整数转16进制
vue添加图片
闭包函数与装饰器
python基础-闭包函数和装饰器
restframework详细
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能
将Session值储存于SQL Server中