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

阿坝县建设局网站logo设计及创意说明

阿坝县建设局网站,logo设计及创意说明,仿做静态网站多少钱,泉州企业网站开发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/72733.html

相关文章:

  • wordpress模板获取数据哈尔滨网站优化对策
  • 南昌市会做网站有哪几家信用体系建设网站
  • 网站推广方案设计方案WordPress食谱小程序
  • 新人怎么自己做网站建立网站建设
  • 全国二级建造师查询网站2008 iis7添加网站
  • 网站建设都需要哪些书网站策划步骤
  • 网站首页源码苏州正规网站建设概况
  • 西安市网站搭建备案需要网站建设方案书
  • wordpress影视站主题长沙模板网站长沙网站建设
  • 邢台资讯做网站需要考虑seo吗
  • 竹业网站建设旅游网站建设目的
  • 万网 成品网站wordpress cat=
  • 龙岗公司网站建设我想做代理怎么找厂家
  • 能自己做效果图的网站海安做网站的公司
  • 南京网站制作搭建网页设计作业设计意图
  • 自媒体网站大全2021室内设计公司排名
  • 手机网站做多宽的图片微信工作平台开发
  • 大学生创业服务网站建设方案陕西住房城乡建设网站
  • 天津免费建设网站代挂QQ建设网站
  • 网站谷歌地图提交自己可以做微信小程序吗
  • 个人网站可以直接做微信登陆吗chrome浏览器官网入口
  • 松岗做网站哪家便宜南阳网站运营
  • app网页设计网站wordpress+百度云图安装
  • 福田网站优化互联网产品经理
  • 做十个网站怎样查看别人的网站是怎么建设
  • 建设历史文化旅游宣传网站做微商哪个网站比较好
  • 网站制作器提高百度快速排名
  • 伊川网站开发濮阳网警
  • wordpress视频网站采集器seo优化排名百度教程
  • 电子科技网站建设网站开发教材