pass
二. 面向对象的事例:
1. 计算圆和正方形的周长面积
from math import pi #引用模块pi class Circle: #定义个类 def __init__(self,r): #定义动态属性 self.r=r #对象属性 def area(self): #定义行为函数 return self.r**2*pi #执行行为内容 def perimeter(self): #定义行为函数 return pi*2*self.r #执行行为内容 c1=Circle(5) #实例化:创造对象 print(c1.r) #打印半径r print(c1.area()) #打印执行area函数结果 print(c1.perimeter()) #打印执行perimeter函数结果 class Square: def __init__(self,r): self.r=r def area(self): return self.r**2 def perimeter(self): return self.r*4 a=Square(4) print(a.area()) print(a.perimeter())
2.小明老王去东北
class Penson: def __init__(self,name,sex,age): self.name=name self.sex=sex self.age=age def dirve(self): print(‘%s,%s,%s岁,开车去东北‘%(self.name,self.sex,self.age)) def climb(self): print(‘%s,%s,%s岁,开车去东北‘ % (self.name, self.sex, self.age)) def hobby(self): print(‘%s,%s,%s岁,开车去东北‘%(self.name,self.sex,self.age)) ming=Penson(‘小明‘,‘男‘,‘10‘) zhang=Penson(‘老张‘,‘男‘,‘90‘) ming.dirve() ming.climb() ming.hobby() zhang.dirve() zhang.climb() zhang.hobby() ‘‘‘ 老张小明都是人属于同一类不同对象,可以先定义一个类,定义相同的动态属性名字性别年龄, 然后定义三个不同的行为: dirve() climb() hobby() 实例化两个对象代入小明和老张传入属性: ming zhang 调用对象属性和类中的方法
3.人狗大战
class Person: def __init__(self,name,sex,aggr,hp): self.name=name self.sex=sex self.aggr=aggr self.hp=hp def attack(self,dog): print(‘%s打了%s‘%(self.name,dog.name)) dog.hp -= self.aggr class Dog: def __init__(self,name,kind,aggr,hp): self.name=name self.kind=kind self.aggr=aggr self.hp=hp def bite(self,person): print(‘%s咬%s‘%(self.name,person.name)) person.hp-=self.aggr hei=Dog(‘小黑‘,‘teddy‘,260,1000) bai=Dog(‘小白‘,‘teedy‘,260,1000) alex=Person(‘alex‘,‘female‘,1,250) egon=Person(‘egon‘,‘female‘,1,250) alex.attack(hei) egon.attack(bai) print(hei.hp) hei.bite(alex) print(alex.hp) ‘‘‘ 人狗大战, 不同的人属性相同,属性值不同,定义一个类Person,动态属性(name,sex,aggr,hp) 定义人的行为,人打狗,狗掉血,狗的血量等于原血量减去人的攻击力 不同的狗属性相同,属性值不同,定义一个类Dog,动态属性(name,kind,aggr,hp) 定义狗的行为,狗咬人,人掉血,人的血量等于原血量减去狗的攻击力 实例化创造对象两个狗两个人: hei 属于狗,只能执行Dog“类”下的行为bite bai 属于狗,只能执行Dog“类”下的行为bite alex 属于人,只能执行Person“类”下的行为attack egon 属于人,只能执行Person“类”下的行为attack 对象调用 人打狗,执行人“类”下的行为attack 查看狗剩余血量 狗咬人,执行狗“类”下的行为bite 查看狗剩余血量 ‘‘‘