• 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
  • 相关阅读:
    SVG绘制星空效果
    httpserver实现简单的上下文
    httpserver
    多协成利用互斥锁按顺序执行读取文件
    channel补充
    获取小程序的手机号
    php 简单加密解密
    goroutine channel
    json序列化和反序列化
    golang 命令行参数
  • 原文地址:https://www.cnblogs.com/xuanxuanlove/p/9662198.html
Copyright © 2020-2023  润新知