zoukankan      html  css  js  c++  java
  • day 16

    今日内容大纲

     01  面试
    1.技术 50% 2.谈吐,交朋友 50%
    02 昨日知识回顾
    03 作业讲解
    04 类空间,对象空间,查询顺序
    05 组合
    06 预习博客内容
    07 作业

    #版本一:代码不合理,人物利用武器攻击别人,动作发起者是人,而不是武器
     class Game_role:
         def __init__(self, name, ad, hp):
             self.name = name
             self.ad = ad
             self.hp = hp
    
         def attack(self, p):
             p.hp = p.hp - self.ad
             print('%s攻击%s,%s掉了%s血,%s还剩%s血' % (self.name, p.name, p.name, self.ad, p.name, p.hp))
    
    p1 = Game_role('盖伦', 20, 500)
    p2 = Game_role('亚索', 50, 200)
    p1.attack(p2)
    print(p2.hp)

    class weapon:
    def __init__(self,name,ad):
    self.name=name
    self.ad=ad
    def fight(self,p1,p2):
    p2.hp=p2.hp-self.ad
    print('%s用%s攻击了%s,%s掉了%s血,还剩%s血'%(p1.name,self.name,p2.name,p2.name,self.ad,p2.hp))

    p1 = Game_role('盖伦', 20, 500)
    p2 = Game_role('亚索', 50, 200)

    axe = weapon('斧子',60)
    knife = weapon('小刀',20)

    axe.fight(p1,p2)
    axe.fight(p1,p2)
    knife.fight(p1,p2)
    knife.fight(p2,p1)
    #版本二
    class Game_role:
        def __init__(self, name, ad, hp):
            self.name = name
            self.ad = ad
            self.hp = hp
    
        def attack(self, p):
            p.hp = p.hp - self.ad
            print('%s攻击%s,%s掉了%s血,%s还剩%s血' % (self.name, p.name, p.name, self.ad, p.name, p.hp))
        def Armament_weapon(self,wea):
            self.wea=wea
    
     p1 = Game_role('盖伦', 20, 500)
     p2 = Game_role('亚索', 50, 200)
     p1.attack(p2)
     print(p2.hp)
    
    class weapon:
        def __init__(self,name,ad):
            self.name=name
            self.ad=ad
        def fight(self,p1,p2):
            p2.hp=p2.hp-self.ad
            print('%s用%s攻击了%s,%s掉了%s血,还剩%s血'%(p1.name,self.name,p2.name,p2.name,self.ad,p2.hp))
    
    p1 = Game_role('盖伦', 20, 500)
    p2 = Game_role('亚索', 50, 200)
    
    axe = weapon('斧子',60)
    knife = weapon('小刀',20)
    print(axe)
    p1.Armament_weapon(axe) #给p1装备了斧子
    print(p1.wea)
    p1.wea.fight(p1,p2)

    组合:

    给一个类的对象封装一个属性,这个属性是另一个类的对象

    class Person:
        animal = '高级动物'
        soul = '有灵魂'
        language = '语言'
    
        def __init__(self, country, name, sex, age, hight):
            self.country = country
            self.name = name
            self.sex = sex
            self.age = age
            self.hight = hight
    
        def eat(self):
            print('%s吃饭' % self.name)
    
        def sleep(self):
            print('睡觉')
    
        def work(self):
            print('工作')
    
    
    Person.__dict__['sleep'](111)
    
    p1 = Person('菲律宾','alex','未知',42,175)
    p2 = Person('菲律宾','alex','未知',42,175)
    p3 = Person('菲律宾','alex','未知',42,175)
    p1.animal = '禽兽'
    print(p1.animal)
    
    print(Person.name)
    p2 = Person('美国','武大','',35,160)
    
    查询顺序:
      对象.属性 : 先从对象空间找,如果找不到,再从类空间找,再找不到,再从父类找....
      类名.属性 : 先从本类空间找,如果找不到,再从父类找....
    
    对象与对象之间是互相独立的.
    
    计算一个类 实例化多少对象.
    
    class Count:
        count = 0
        def __init__(self):
            Count.count = self.count + 1
    
    obj1 = Count()
    obj2 = Count()
    
    print(Count.count)
    count = 0
    
    def func():
        print(count)
    func()
    
    class Count:
        count = 0
        def __init__(self):
            pass
    
    通过类名可以更改我的类中的静态变量值
    Count.count = 6
    print(Count.__dict__)
    
    但是通过对象 不能改变只能引用类中的静态变量
    
    obj1 = Count()
    print(obj1.count)
    obj1.count = 6

     

    
    
  • 相关阅读:
    leetcode Remove Nth Node From End of List
    leetcode Plus One
    leetcode climbing stairs
    leetcode Merge Two Sorted Lists
    leetcode Maximum Subarray
    leetcode Binary Tree Level Order Traversal I II
    leetcode Pascal's Triangle II
    leetcode pascal's triangle
    leetcode valid parentheses
    leetcode Path Sum
  • 原文地址:https://www.cnblogs.com/hongweijiang/p/10862469.html
Copyright © 2011-2022 走看看