python类继承中构造子的调用
来源:互联网 发布:linux定制桌面 编辑:程序博客网 时间:2024/05/29 14:59
python面向对象中的继承关系中,子类对父类的构造方法的调用有两种方法:
父类名.__init__(self,参数) #注意名字是父类super(本子类名,self)__init__(其他参数) #注意名字是本身子类,而且init后是self之外的参
例子程序代码:
# -*- coding:utf-8 -*- class Person(object): __metaclass__=type def __init__(self,name="Jim"): "父类的构造方法,包含初始化属性name" self.name=name self.flag=False print "Person",self.name def call(self): print self.flag,"name:",self.name self.flag = not self.flag class Programmer(Person): __metaclass__=type def __init__(self): "子类的构造方法,调用父类的构造方法,初始化属性flag"#调用方式1 Person.__init__(self,"DOTJAR") print "Programmer" def setName(self,name="prgrmr"): self.name=nameclass Athlete(Person): __metaclass__=type def __init__(self,name="PaoZhu"): "子类的构造方法,调用父类的构造方法,初始化属性flag"#调用方式2 注意无参 super(Athlete,self).__init__(name) print "Athlete" def setName(self,name="athlete"): self.name=namecoder=Programmer()coder.call()coder.setName("dotjar")coder.call()print("----------------")athlete=Athlete()athlete.call()athlete.setName("LiuXiang")athlete.call()
输出为:
Person DOTJARProgrammerFalse name: DOTJARTrue name: dotjar<class '__main__.Programmer'>----------------Person PaoZhuAthleteFalse name: PaoZhuTrue name: LiuXiang
0 0
- python类继承中构造子的调用
- 类继承中构造方法的调用原理浅析
- 继承关系中构造方法的调用
- java继承中构造函数的调用
- C#继承|继承中构造函数的调用
- C++中继承和调用父类的构造函数方法,外加MFC常见dialog继承
- [python相关]多类继承中子类默认继承哪个父类的构造函数__init__
- python中单继承和多继承中子类默认继承父类的哪个构造函数__init__
- Python类的构造器及继承
- Java中继承关系的构造函数的调用顺序
- 继承中关于调用构造方法的问题
- C++继承关系中构造函数的调用顺序
- java中继承父类后构造函数的调用
- java关于继承中构造函数的调用顺序
- C++中多重继承构造函数调用的先后顺序
- Java在继承中构造器的调用顺序
- java 关于继承中构造器和方法的调用
- java的继承关系中,构造方法调用问题
- 正则表达式 价格正则表达式 非负整数正则表达式 正整数正则表达式
- VC6最基本
- 旧笔记一页
- gcc 执行c++报错
- kvm--default网络配置
- python类继承中构造子的调用
- Python正则表达式
- 美剧学英语清单
- 修改个人社保关联医院网址
- error: undefined reference to 'android::AString::~AString()'
- 索引--mysql 数据库Load data大量数据时性能因素之一
- [IDE] VS运行时库详解
- python中的时间和时间格式转换
- 对敏捷开发的一些思考