• python学习笔记 day22 面向对象(三)


    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())

    运行结果:

    talk is cheap,show me the code
  • 相关阅读:
    Linux账户密码安全策略设置 /etc/login.defs:
    GPS网络时间服务器安装注意事项
    ntp时间校准服务器的调试方法
    北斗网络时钟服务器的特点
    sntp时间服务器的介绍
    网络校时服务器
    综合时间码分配器介绍
    子母钟系统介绍
    智能计数器简介
    怎样选择通用计数器?
  • 原文地址:https://www.cnblogs.com/xuanxuanlove/p/9662198.html
Copyright © 2020-2023  润新知