摘要:本文主要向大家介绍了【云计算】python类和对象解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
本文主要向大家介绍了【云计算】python类和对象解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
定义类
类由三个部分组成:
类的名称:类型
属性:一组数据
方法:允许对进行操作的方法 (行为
创建和使用类
普通定义类和对象
class car: def move(self): print("车在奔跑") def toot(self): print("车在鸣笛。。滴滴。。") #创建一个对象 BMW=car() #定义对象的属性 BMW.color="黑色"# BMW.wheelNum=4 #调用类方法 BMW.move() BMW.toot() #调用对象的属性 print(BMW.color) print(BMW.wheelNum)
4.init_()构造方法和self
如果向上述例子,将此类下所有的对象都有该属性,因此,可以构造init(self)方法,将对象属性定义下来。
class car: def __init__(self):#self语法没有什么特殊的意义,第一个必须存在 self.wheelNum=4#必须用self去定义 self.color="黑色"#不可更改 def move(self): print("车在奔跑") def toot(self): print("车在鸣笛。。滴滴。。") #创建第一个对象 BMW=car() print(BMW.color) #创建第二个对象 AA=car() #如果与定义类属性中的不一致,则可自行定义 AA.color="白色" print(AA.color) #定义对象的属性 BMW.color="黑色"# BMW.wheelNum=4 #调用类方法 BMW.move() AA.toot() ---------- 传入形参和实参 #改进:形参-实参 class car: def __init__(self,color):#self语法没有什么特殊的意义,第一个必须存在 self.wheelNum=4#必须用self去定义 self.color=color def move(self): print("车在奔跑") def toot(self): print("车在鸣笛。。滴滴。。") #因为init定义了参数,所以在调用的时候必须传入实参 BMW=car("红色") print(BMW.color) AA=car("黑色") print(AA.color) ---------- 默认参数 class car: def __init__(self,color="白色"): self.wheelNum=4 self.color=color #如果传入参数,则运行出指定参数 BMW=car("红色") print(BMW.color) #如果没传入,则运行出默认参数 AA=car() print(AA.color) 红色 白色
根据上两节创建一个Dog类 创建出多个狗狗对象,比如泰迪、拉布拉多等 class dog(): def __init__(self,name,color): self.name=name self.color=color def eat(self): print("%s啃骨头"%self.name) 泰迪=dog("小黑","黑色") print("泰迪的颜色是%s"%泰迪.color) 泰迪.eat() 拉布拉多=dog("大黄","黄色") print("拉布拉多的颜色是%s"%拉布拉多.color) 拉布拉多.eat() answer: 泰迪的颜色是黑色 小黑啃骨头 拉布拉多的颜色是黄色 大黄啃骨头
子类可以调用父类,父类不可以调用子类
先执行子类,若子类属性定义名与父类相同,则执行子类属性;
-
#父类 class person(): def __init__(self,name,hair="长发"): self.name=name self.hair=hair def run(self): print("%s正在跑步锻炼"%self.name) #子类 class women(person): # def __init__(self, color): # self.color=color def dancing(self): print("唱歌跳舞") def run(self): print("在跑步") #创建一个子类对象 bingbing=women("白色") #我们想要调用子类中的__init__,但是与父类相同了,则拒绝执行将白色传递给color,这个白色是以name形式传递给父类中的__init__中的name参数 print(bingbing.dancing()) #dancing属性在父类中没有,执行子类 #bingbing.color() #不知道为什么会报错 print(bingbing.run()) #父类与子类均有,执行子类,若将子类注释掉,则会执行父类 案例1: class person(): def __init__(self,name,hair="长发"): self.name=name self.hair=hair def run(self): print("%s正在跑步锻炼"%self.name) class women(person): # def __init__(self, color): # self.color=color def dancing(self): print("唱歌跳舞") def run(self): print("在跑步") bingbing=women("白色") print(bingbing.dancing()) print(bingbing.run()) answer: 唱歌跳舞 在跑步 案例2: class person(): def __init__(self,name,hair="长发"): self.name=name self.hair=hair def run(self): print("%s正在跑步锻炼"%self.name) class women(person): # def __init__(self, color): # self.color=color def dancing(self): print("唱歌跳舞") #def run(self): #print("在跑步") bingbing=women("白色") print(bingbing.dancing()) print(bingbing.run()) #将子类里的run注释掉就可以执行父类的run了 answer: 唱歌跳舞 白色正在跑步锻炼
语法:
class Derivedclassname(base1,base2,base3):
statement-1
.
.
.
statement-n
先执行子类,再从左向右依次执行父类
如果子类中没有构造器,会调用父类的构造器,如果是多继承,会调用从左向右第一个有构造器的父类构造器,方法的调用也一样
#第一个父类 class person(): def __init__(self,name,hair="长发"): self.name=name self.hair=hair def run(self): print("%s正在跑步锻炼"%self.name) #第二个父类 #class women(person):#一定去掉,因为这两个父类是没有关系的,不能是他的子类,否则会出现报错 class women(): # def __init__(self, color): # self.color=color def dancing(self): print("唱歌跳舞") def run(self): print("在跑步") #创建一个子类对象 class 创造(person,women): def sing(self): print("%s在唱歌"%self.name)#完全可以调用父类中的属性 num=创造("杨超越") num.run()#执行第一个父类 num.sing() answer: 杨超越正在跑步锻炼 杨超越在唱歌
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号