当前位置: 首页 > news >正文

哈尔滨网站建设工作室汉滨网站建设

哈尔滨网站建设工作室,汉滨网站建设,泰安放心的企业建站公司,如何做网站好看专栏#xff1a;python 个人主页#xff1a;HaiFan. 专栏简介#xff1a;Python在学#xff0c;希望能够得到各位的支持#xff01;#xff01;#xff01; 关联与继承前言has a关联关系is a继承关系子类不添加__init__子类添加__init__前言 has a关联关系 has - a 是在… 专栏python 个人主页HaiFan. 专栏简介Python在学希望能够得到各位的支持 关联与继承前言has a关联关系is a继承关系子类不添加__init__子类添加__init__前言 has a关联关系 has - a 是在一个类中使用了另一种自定义的类型。 看代码 import randomclass Road:def __init__(self,name,len):self.name nameself.len lenclass Car:def __init__(self,brand,speed):self.brand brandself.speed speeddef get_time(self,road):ran_time random.randint(1,10)msg f{self.brand}品牌的车在{road.name}上以{self.speed}速度行驶了{ran_time}个小时print(msg)def __str__(self):return f{self.brand}品牌的\n速度{self.speed}r Road(nb,111)c Car(shangtian,130)print(c)c.get_time(r)这个代码中的 get_time中的road和r是一样的指向同一块空间如果在传参的时候不传r对象那么get_time里面是没有name这个属性的r可以.调用属性road.也可以调用属性 我把这个r对象中的name进行更改因为r和road指向的是同一块空间所以r.name改变之后road.name也会改变 has a 一个类中使用了另一种自定义类型就是关联关系 如上面代码中c对象中的参数是r对象 is a继承关系 is - a简单来说就是继承关系类的父子继承关系。 子类不添加__init__ 在以后的开发过程中我们会碰到很多情况比如让我们写多个类医生类学生类等等在每一个类里面都会写名字性别年龄等一个一个的类写是比较繁琐的在这里Python给出了解决办法 class Student:def __init__(self,name,age):self.name nameself.age agedef eat(self):print(f{self.name}正在吃饭)class Doctoe:def __init__(self, name, age):self.name nameself.age agedef eat(self):print(f{self.name}正在吃饭)这个代码中有着很多重复的代码并且这些类都有一个共同的特征那么就可以提取出来他们共同的部分写做一个类将其共同的特征都写入这个类中。这个类就是父类 class Person:def __init__(self,name,age):self.name nameself.age agedef eat(self):print(f{self.name}正在吃饭)class Student:passclass Doctoe:passa Student()a.eat()在创建出a对象之后这个对象是找不到eat这个方法的。 因为Student类中为pass 那么如何让提取出来的共同特征在下面的类中都能体现出来呢 这就用到了继承关系把人这一类称为父类把属于人这一类的类称为子类。 class 父名字:pass class 类名(父类名字):pass为什么在继承之后还会出现阴影子类继承父类后会受到父类的影响因为父类的__init__有name和age参数所以子类中也有这两个参数所以会出现阴影 class Person:def __init__(self,name,age):self.name nameself.age agedef eat(self):print(f{self.name}正在吃饭)class Student(Person):passclass Doctoe(Person):passa Student(lise,19) a.eat()我们创建一个类默认继承是object在Python3中我们不写(object)默认继承object 我们知道Python代码是依次执行的所以再上面的代码中会先通过__new__魔术方法开辟一段空间然后把空间传给__init__. 这个__new__是object的如果自己没有就会先去父类找父类没有就会去object找再比如__init__Student类里面是没有这个魔术方法的那么就会先去父类找。 本层找不到就去上层找 子类添加__init__ lass Person:def __init__(self):self.name lisiself.age 19def eat(self):print(f{self.name}正在吃饭)def run(self):print(f{self.namme}正在跑步)class Student(Person):def __init__(self):print(-------init)class Employee(Person):passclass Doctor(Person):passa Student()创建a对象然后运行代码会打印出执行__init__的结果。 如果再加一个a.eat()呢 这就错了。 那么如何调用父类的 __init__呢 这里我们用到了 super关键字 如何调用父类 __init__ super(). __init__(参数)super(类名,对象).__init__(参数) class Person:def __init__(self):self.name lisiself.age 19def eat(self):print(f{self.name}正在吃饭)def run(self):print(f{self.namme}正在跑步)class Student(Person):def __init__(self):print(-------init)super().__init__() class Employee(Person):passclass Doctor(Person):passa Student()如果类中不定义 __init__就调用父类的 __init__ 如果类继承父类也需要定义自己的 __init__就需要在当前类的 __init__调用一下父类 __init__ 如何调用父类 __init__ super(). __init__(参数)super(类名,对象).__init__(参数) 如果父类有eat(),子类也定义一个eat方法默认搜索原则先找当前类再去找父类。 父类提供的方法不能满足子类的需求就需要在子类中定义一个同名的方法这种行为叫做重写 override\ 子类的方法中也可以调用的父类的方法 super().eat()
http://www.w-s-a.com/news/539612/

相关文章:

  • 长春网站建设公司怎么样电商网站建设与开发期末考试
  • 品牌网站建设搭建国内外网站建设
  • 辽宁人社app一直更新整站seo定制
  • 兰州网站建设论坛装修品牌
  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站
  • 做网站的股哥网络整合营销方案策划
  • 网站你懂我意思正能量晚上唯品会网站开发费用
  • 网站认证金额怎么做分录网页无法访问是怎么回事
  • 樟木头建网站的wordpress自适应吸附菜单
  • 番禺网站设计威海微网站建设
  • 新乡网站建设服务网站建设的点子
  • 赛罕区城乡建设局网站什么是新媒体运营
  • 松原企业网站建设设计素材网排名
  • 网站建设是那个行业广东公司排名
  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求
  • 网站备案证明在自己电脑上做网站
  • 沈阳旅游团购网站建设怎么制作网站搜索窗口
  • 做化学合成的网站有哪些枣庄住房和城乡建设局网站
  • 天猫优惠券网站怎么做的网络连接
  • 保定网站建设多少钱公司网页网站建设+ppt模板下载
  • 用户上传商品网站用什么做建设跳转公积金网站
  • 买程序的网站上海市网站建设公司
  • 南通网站建设排名公司哪家好wordpress网站图片迁移
  • 河南省汝州文明建设门户网站博客网站建设源码
  • 单位建设网站的请示手机移动端网站案例