您的位置:首页 > 其它

面向对象和类

2019-07-26 21:19 49 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Mr_Lee9/article/details/97419327

面向对象和类

定义一个类

class Student():
name=""
def study(self):
print(self.name,"学习去")
def eat(self):
print(self.name,"吃饭去")

lee=Student()
lee.name='lee'
lee.study()
lee.eat()

输出结果为:

__init__方法

class Student():
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex
def show(self):
print("我叫{}年龄{}性别{}".format(self.name,self.age,self.sex))

zs=Student("张三",18,"男")
zs.show()

输出结果为:

__str__方法

class Dog():
def __init__(self,color,age):
self.color=color
self.age=age
def __str__(self):  # 魔术方法
return "颜色%s 年龄%d"%(self.color,self.age)
d=Dog("红色",18)
x=str(d)
print(x,type(x))

输出结果为:

计算圆的周长和面积:

from math import pi
class Circle():
def __init__(self,r):
self.r=r
def mj(self):
return pi*self.r*self.r
def zc(self):
return 2*pi*self.r
def __str__(self):
return "圆的半径是%.2f,周长是%.2f,面积是%.2f"%(self.r,self.zc(),self.mj())
a=Circle(5)
print(a)

输出结果为:

烤羊串练习:

heep():
def __init__(self):
self.cooktime=0
self.status="生的"
def cook(self,cook_time):
self.cooktime+=cook_time
if self.cooktime<2:
self.status="生的"
elif self.cooktime<4:
self.status="半熟"
elif self.cooktime<6:
self.status="熟的"
else:
self.status="焦的"
def __str__(self):
return "烤了%d个小时,状态%s"%(self.cooktime,self.status)
s=Sheep()
s.cook(2)
print(s)
s.cook(3)
print(s)

输出结果为:

诸葛亮大战曹操练习

Person():
def __init__(self,name,attack,hp):
self.name=name
self.attack=attack
self.hp=hp
self.zs=0
def start_attack(self,obj):
obj.hp-=self.attack
obj.zs=self.attack
def __str__(self):
return "{},还剩{}滴血,受到了{}点攻击,攻击力:{}".format(self.name,self.hp,self.zs,self.attack)
class NPC():
def __init__(self,name,attack,hp):
self.name=name
self.attack=attack
self.hp=hp
self.zs=0
def start_attack(self,obj):
obj.hp-=self.attack
obj.zs=self.attack
def __str__(self):
return "{},还剩{}滴血,受到了{}点攻击,攻击力:{}".format(self.name,self.hp,self.zs,self.attack)
r=Person("诸葛亮",30,100)
c=NPC("曹操",20,200)
r.start_attack(c)
c.start_attack(r)
print(c)
print(r)

输出结果为:

买家具练习:

ouse():
def __init__(self,info,area,address):
self.info=info
self.area=area
self.address=address
self.jiaju=[]
def add_jiaju(self,obj):
self.area-=obj.area
self.jiaju.append(obj.name)
def __str__(self):
jiaju=""
for i in self.jiaju:
jiaju+=i+","
return "房子是{},面积是{},地址是{},家具有{}".format(self.info,self.area,self.address,jiaju)
class Jiaju():
def __init__(self,name,area):
self.name=name
self.area=area
room=House("三室一厅",130,"北京10环")
jiaju=Jiaju("床",6)
room.add_jiaju(jiaju)
print(room)
jiaju=Jiaju("冰箱",3)
room.add_jiaju(jiaju)
print(room)

输出结果为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: