当前位置:
首页 > temp > python入门教程 >
-
python基础--面向对象之继承
# 继承是一种创建新类的方式,新建的类可以继承一个,或者多个父类, # 父类又可以称为基类或者超类,新建的类可以称为派生类,子类 class ParentClass1: # 定义父类 1 pass class ParentClass2: # 定义父类 2 pass class SubClass1(ParentClass1): # 继承一个父类 pass class SubClass2(ParentClass1,ParentClass2): # 继承两个父类 pass print(SubClass1.__bases__) # 查看父类 print(SubClass2.__bases__) class Animal: def eat(self): print("%s is eating" %self.name) def drink(self): print("%s is drinking" % self.name) def shit(self): print("%s is shiting" %self.name) def pee(self): print("%s is peeing" %self.name) # 子类可以使用父类的函数属性和数据属性 class Cat(Animal): def __init__(self,name): self.name = name self.breed = "猫" def cry(self): print("喵喵叫") class Dog(Animal): def __init__(self,name): self.name = name self.breed = "狗" def cry(self): print("汪汪叫") c1 = Cat("小白家的黑猫") c1.eat() # 当前类中如果没有eat属性,就会去父类中找 c2 = Cat("小黑家的白猫") c2.drink() d1 = Dog("胖子家的瘦狗") d1.eat() # 如果子类中有和父类中相同的属性,会优先使用子类中的属性(如果没有特殊说明) # 因此,我们在开发的过程中,如果定义了一个类A,然后想重新建立一个类B,而且 # B的很多功能和A是相同的,我们只需要把A继承过来,然后在B中写一写不一样的功能 # 就可以了 # 注意当有继承的时候,一定要注意属性查找 class F: def f1(self): print("F.f1") def f2(self): print('F.f2') self.f1() class S(F): def f1(self): print("S.f1") s = S() s.f2() # 我们来看一下代码执行过程 # s为一个对象--要执行f2方法--自己的类中没有--在父类中找--父类中有-- # 注意;父类中这个self是s--打印F.f2--然后执行f1,--先在自己类中找,-- # 找到了--打印S.f1 # 假如我们在子类中相用父类的方法,两种办法 # 一,直接用类名即:父亲名.方法名() # 二,super() class Animal: def __init__(self,name,age,gender): self.name = name self.age = age self.gender = gender class people(Animal): def __init__(self,name,age,gender): Animal.__init__(self,name,age,gender) class Cat(Animal): def __init__(self,name,age,gender): # 这是不用传入对象本身, # super()相当于super(Cat,self) super().__init__(name,age,gender) peo = people('wangcong',21,'mal') cat = Cat('cat',2,'male') print(peo.name,cat.name) # wangcong cat # 最后总结一点,有关组合和继承, # 1,人是动物,猫是动物,这就是继承关系, # 2,学校有教室,学生有书本。这就是组合关系, # 一个类在另一个类中,一个对象跟另一个对象有关系 # 简单看一下组合 list1 = list() # 我们之前说list是一个类,用来实例化一个对象 str1 = "hello" # 同样str1也是一个字符串对象 list1.append(str1) print(list1) # 此时,他们之间就是组合关系
来源:https://www.cnblogs.com/cong12586/p/11366370.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数