1. 使用类实现人狗大战
class Dog(): def __init__(self,name,blood,aggr,kind): self.name=name self.blood=blood self.aggr=aggr self.kind=kind def bite(self,person): person.blood-=self.aggr print('%s被咬了,掉了%s的血'%(person.name,self.aggr)) class Person(): def __init__(self,name,blood,aggr,sex): self.name=name self.blood=blood self.aggr=aggr self.sex=sex def attack(self,dog): dog.blood-=self.aggr print('%s被打了,掉了%s的血'%(dog.name,self.aggr)) p=Person('璇璇',10,3,'女') d=Dog('lucky',100,2,'狗子') p.attack(d) d.bite(p)
运行结果:
2. 在终端输出如下信息:
class Info(): def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def view(self): print("%s ,%s岁,%s,%s"%(self.name,self.age,self.sex,'上山去砍柴')) print("%s ,%s岁,%s,%s"%(self.name,self.age,self.sex,'开车去东北')) print("%s ,%s岁,%s,%s"%(self.name,self.age,self.sex,'最爱大保健')) p1=Info('小明',10,'男') p2=Info('老李',90,'男') p1.view() p2.view()
运行结果:
版本二(Eva-J)
class Info(): def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def firewood(self): print("%s ,%s岁,%s,%s"%(self.name,self.age,self.sex,'上山去砍柴')) def drive(self): print("%s ,%s岁,%s,%s"%(self.name,self.age,self.sex,'开车去东北')) def favor(self): print("%s ,%s岁,%s,%s"%(self.name,self.age,self.sex,'最爱大保健')) p1=Info('小明',10,'男') p1.firewood() p1.drive() p1.favor() p2=Info('老李',90,'男') p2.firewood() p2.drive() p2.favor()
这个更好,把牵涉到的动作都用类里面的方法来实现了~,挺好的~
1.当有几个函数需要反反复复传入几个相同的参数时就可以考虑用面向对象;这几个参数就是对象的属性;
2.当非常明显的想要处理一类事物,这些事物具有相似的属性和功能时,可以考虑面向对象;
3. 使用面向对象思想实现一个圆:求周长和半径
from math import pi class Circle(): def __init__(self,r): self.r=r def perimeter(self): return 2*pi*self.r def area(self): return pi*self.r**2 circle=Circle(10) print(circle.perimeter()) print(circle.area())
运行结果: