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

南城微网站建设怎么做亚马逊网站

南城微网站建设,怎么做亚马逊网站,wordpress 更改主页,管理咨询师资格证Python 中子类会继承父类所有的类属性和类方法。严格来说#xff0c;类的构造方法其实就是实例方法#xff0c;因此毫无疑问#xff0c;父类的构造方法#xff0c;子类同样会继承。 但我们知道#xff0c;Python 是一门支持多继承的面向对象编程语言#xff0c;如果子类…Python 中子类会继承父类所有的类属性和类方法。严格来说类的构造方法其实就是实例方法因此毫无疑问父类的构造方法子类同样会继承。 但我们知道Python 是一门支持多继承的面向对象编程语言如果子类继承的多个父类中包含同名的类实例方法则子类对象在调用该方法时会优先选择排在最前面的父类中的实例方法。显然构造方法也是如此。 举个例子 class People:def __init__(self,name):self.name namedef say(self):print(我是人名字为,self.name) class Animal:def __init__(self,food):self.food fooddef display(self):print(我是动物,我吃,self.food) #People中的 name 属性和 say() 会遮蔽 Animal 类中的 class Person(People, Animal):pass per Person(zhangsan) per.say() #per.display() 运行结果结果为 我是人名字为 zhangsan 上面程序中Person 类同时继承 People 和 Animal其中 People 在前。这意味着在创建 per 对象时其将会调用从 People 继承来的构造函数。因此我们看到上面程序在创建 per 对象的同时还要给 name 属性进行赋值。 但如果去掉最后一行的注释运行此行代码Python 解释器会报如下错误 Traceback (most recent call last):File D:\python3.6\Demo.py, line 18, in moduleper.display()File D:\python3.6\Demo.py, line 11, in displayprint(我是动物,我吃,self.food) AttributeError: Person object has no attribute food 这是因为从 Animal 类中继承的 display() 方法中需要用到 food 属性的值但由于 People 类的构造方法“遮蔽”了Animal 类的构造方法使得在创建 per 对象时Animal 类的构造方法未得到执行所以程序出错。 反过来也是如此如果将第 13 行代码改为如下形式 class Person(Animal, People) 则在创建 per 对象时会给 food 属性传值。这意味着per.display() 能顺序执行但 per.say() 将会报错。 针对这种情况正确的做法是定义 Person 类自己的构造方法等同于重写第一个直接父类的构造方法。但需要注意如果在子类中定义构造方法则必须在该方法中调用父类的构造方法。 在子类中的构造方法中调用父类构造方法的方式有 2 种分别是 类可以看做一个独立空间在类的外部调用其中的实例方法可以向调用普通函数那样只不过需要额外备注类名此方式又称为未绑定方法使用 super() 函数。但如果涉及多继承该函数只能调用第一个直接父类的构造方法。也就是说涉及到多继承时在子类构造函数中调用第一个父类构造方法的方式有以上 2 种而调用其它父类构造方法的方式只能使用未绑定方法。 值得一提的是Python 2.x 中super() 函数的使用语法格式如下 super(Class, obj).__init__(...) 其中Class 值得是子类的类名obj 通常指的就是 self。 但在 Python 3.x 中super() 函数有一种更简单的语法格式推荐大家使用这种格式 super().__init__(...) 在掌握 super() 函数用法的基础上我们可以尝试修改上面的程序 class People:def __init__(self,name):self.name namedef say(self):print(我是人名字为,self.name) class Animal:def __init__(self,food):self.food fooddef display(self):print(我是动物,我吃,self.food) class Person(People, Animal):#自定义构造方法def __init__(self,name,food):#调用 People 类的构造方法super().__init__(name)#super(Person,self).__init__(name) #执行效果和上一行相同#People.__init__(self,name)#使用未绑定方法调用 People 类构造方法#调用其它父类的构造方法需手动给 self 传值Animal.__init__(self,food) per Person(zhangsan,熟食) per.say() per.display() 运行结果为 我是人名字为 zhangsan 我是动物,我吃 熟食 可以看到Person 类自定义的构造方法中调用 People 类构造方法可以使用 super() 函数也可以使用未绑定方法。但是调用 Animal 类的构造方法只能使用未绑定方法。 Python教程8天python从入门到精通学python看这套就够了
http://www.dnsts.com.cn/news/88811.html

相关文章:

  • 什么软件做网站最好北京网站建设公司报价浩森宇特
  • 网站品牌建设龙岩网站开发
  • 怎样用linux做网站美容院网站建设
  • 建立网站实验总结网站 为什么要备案
  • 网站是怎么建立的wordpress无法进入登录页
  • 购物网站商城王烨画家
  • 东莞公司网站建设小知识网页设计教程的资料
  • 网站推广技术南沙定制型网站建设
  • 网站正在建设中 英语翻译东营可以做网站的公司在哪
  • 竹子建站seo设置怎么做北京网站建设哪家好
  • 快速微信网站建设电子烟网站设计
  • 做外贸网站做成哪种形式好情感网站seo
  • 跨境出口电商网站wordpress主题免费和付费
  • 西安微信商城网站设计什邡移动网站建设
  • 深圳公司注销百度seo排名优化公司哪家好
  • 网站备案网址江苏建设局网站
  • 网站服务器和空间有什么区别网站pv怎么统计
  • 保定模板建站定制网站摄影设计说明
  • 3d报价网站开发深圳住房和建设厅网站首页
  • 天津制作个人建站选服务好的佛山网站建设
  • 个人网站制作基本步骤建设网站做什么赚钱
  • 网站建设包含以下哪些建设阶段教育直播网站建设
  • tk后缀网站是什么网站app开发平台开发
  • 做产品设计之前怎么查资料国外网站青岛个人建站模板
  • 自己怎么做商城网站吗wordpress添加小工具
  • 百度云 做视频网站做的网站很卡
  • 汕头门户网站Python 查询网站开发
  • 惠安县住房和城乡建设局网站wordpress反向代理
  • 人与狗做的电影网站网站推广seo优化
  • 国外网站案例企业网站建设合同书