码迷,mamicode.com
首页 > 编程语言 > 详细

python全栈学习--Day18(面向对象交互)

时间:2018-04-11 22:17:55      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:png   lex   就是   init   技术   创建   全栈   图片   属性   

一、对象之间的交互

现在我们已经有了一个人类了,在通过人类一些具体的属性我们就可以那到一个实实在在的人。

现在我们要在创建一个狗类,狗就不能打人了。只能咬人,所以我们给狗一个bite方法。

有了狗类,我们还要实例化一只是实实在在的狗出来。

然后人和狗就可以打架了。现在我们就来让他们打一架吧!

创建一个狗类

class Person:
    role = ‘person‘  #静态属性

    def __init__(self,name,sex,hp,ad):
        self.name = name
        self.sex = sex
        self.hp = hp
        self.ad = ad
    def attack(self):
        print(‘%s发起了一次攻击‘%self.name)

class Dog:
    role = ‘person‘ #静态属性

    def __init__(self,name, kind, hp, ad):
        self.name = name
        self.kind = kind
        self.hp = hp
        self.ad = ad
    def bite(self):
        print(‘%s咬了人一口‘%self.name)

alex = Person(‘a_alex‘,‘不祥‘,1,5)
boos_jin = Person(‘金老板‘,‘女‘,20,50)

teddy = Dog(‘笨笨‘,‘teddy‘,50,10)

alex.attack()  #相当于执行Person.attack(alex)
boos_jin.attack() #相当于执行Person.attack(boss_jin)

teddy.bite()

  

执行输出:

a_sb发起了一次攻击
金老板发起了一次攻击
笨笨咬了人一口

 

那么问题来了,人发起了一次攻击,他攻击了谁?

交互 teddy打alex一下

class Person:
    role = ‘person‘  # 静态属性

    def __init__(self, name, sex, hp, ad):
        self.name = name  # 对象属性 属性
        self.sex = sex
        self.hp = hp
        self.ad = ad

    def attack(self):
        print(‘%s发起了一次攻击‘ % self.name)


class Dog:
    role = ‘person‘  # 静态属性

    def __init__(self, name, kind, hp, ad):
        self.name = name  # 对象属性 属性
        self.kind = kind
        self.hp = hp
        self.ad = ad

    def bite(self, people):  # people是变量名,它是一个对象
        people.hp -= self.ad  # 人掉血
        print(‘%s咬了%s一口,%s掉了%s点血‘ % (self.name, people.name, people.name, self.ad))  # 由于people是对象,取name就是people.name


alex = Person(‘a_sb‘, ‘不详‘, 1, 5)
boss_jin = Person(‘金老板‘, ‘女‘, 20, 50)

teddy = Dog(‘笨笨‘, ‘teddy‘, 50, 10)

teddy.bite(alex)  # alex是一个对象,把对象传进去了
print(alex.hp)  # 查看alex的血

  技术分享图片

 

python全栈学习--Day18(面向对象交互)

标签:png   lex   就是   init   技术   创建   全栈   图片   属性   

原文地址:https://www.cnblogs.com/haowen980/p/8799021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!