美文网首页
【第18天】python全栈从入门到放弃

【第18天】python全栈从入门到放弃

作者: 36140820cbfd | 来源:发表于2019-08-14 22:37 被阅读0次

1 实例化一个对象的查询顺序

对象.属性 : 先从对象空间找,如果找不到,再从类空间找,再找不到,再从父类找....

类名.属性 : 先从本类空间找,如果找不到,再从父类找....

2 计算一个类,实例化多少对象

代码块
class Count:
    count=0

    def __init__(self):
        Count.count+=1   #这里必须用Count.count,不是self.count

a=Count()
b=Count()
c=Count()
print(Count.count)
d=Count()
#实例化四个对象
print(Count.count)   #查看实例化了多少个对象。

3 通过类名可以更改我的类中的静态变量值,但是通过对象 不能改变只能引用类中的静态变量

代码块
class Count:
    count=0

    def __init__(self):
        Count.count+=1   #这里必须用Count.count,不是self.count

c=Count()
Count.count=6
print(Count.count)   #可以通过类的名字改变类的静态变量

c.count=8
print(c.count)    #8 只能更改对象的静态变量,不能更改类
print(Count.count)  #类中静态变量依然是6

4 英雄联盟角色攻击类模拟

'''

模拟英雄联盟写一个游戏人物的类(升级题).

要求:

(1)创建一个 Game_role的类.

(2) 构造方法中给对象封装name,ad(攻击力),hp(血量).三个属性.

(3) 创建一个attack方法,此方法是实例化两个对象,互相攻击的功能:

例: 实例化一个对象 盖伦,ad为10, hp为100

实例化另个一个对象 剑豪 ad为20, hp为80

盖伦通过attack方法攻击剑豪,此方法要完成 '谁攻击谁,谁掉了多少血, 还剩多少血'的提示功能.

'''

代码块
class Game_role:

    def __init__(self,name,ad,hp):
        self.name=name
        self.ad=ad
        self.hp=hp

    def attack(self,g2):  #实例化对象也可以作为参数
        g2.hp-=self.ad
        print('%s攻击%s,%s掉了多少%d,  还剩%d血'%(self.name,g2.name,g2.name,self.ad,g2.hp))

g1=Game_role('gailun',10,100)
g2=Game_role('jianhao',20,80)
g1.attack(g2)
别跑,点个赞再走

相关文章

网友评论

      本文标题:【第18天】python全栈从入门到放弃

      本文链接:https://www.haomeiwen.com/subject/jjkojctx.html