zoukankan      html  css  js  c++  java
  • 面向对象之 人狗大战加载武器 圆环的周长和面积 老师的生日时间选择

    #加载武器的人和狗大战  类的组合1
    # class Dog: # 定义一个狗类
    # def __init__(self, name, breed, aggressivity, life_value):
    # self.name = name # 每一只狗都有自己的昵称;
    # self.breed = breed # 每一只狗都有自己的品种;
    # self.aggressivity = aggressivity # 每一只狗都有自己的攻击力;
    # self.life_value = life_value # 每一只狗都有自己的生命值;
    # def bite(self,person_obj):
    # print('%s咬了%s'%(self.name,person_obj.name))
    # person_obj.lif_value -= self.aggressivity
    # class Person: # 定义一个人类
    # def __init__(self, name, aggressivity, life_value, money):
    # self.name = name # 每一个角色都有自己的昵称;
    # self.aggressivity = aggressivity # 每一个角色都有自己的攻击力;
    # self.life_value = life_value # 每一个角色都有自己的生命值;
    # self.money = money
    # def attack(self,dog_obj):
    # print('%s攻击了%s'%(self.name,dog_obj.name))
    # dog_obj.life_value -= self.aggressivity
    # def get_weapon(self,weapon_obj):
    # if self.money > weapon_obj.price:
    # self.money -= weapon_obj.price
    # self.weapon = weapon_obj
    # self.aggressivity+= weapon_obj.agge
    # class Weapon:
    # def __init__(self,name,agge,price):
    # self.name = name
    # self.agge = agge
    # self.price = price
    #
    # dagl = Weapon('打狗棍',120,99)
    # huang = Dog('huazi','zangao',100,1000)
    # boss_Jin = Person('金老板',30,600,100)
    # # print(boss_Jin.name)
    # boss_Jin.get_weapon(dagl)
    # boss_Jin.attack(huang)
    # print(huang.life_value)

    # -------------
    # 组合实例2
    # class Teachers:
    # def __init__(self,name,sex,age,year,month,day):
    # self.name = name
    # self.sex = sex
    # self.age = age
    # self.bir = Birthday(year,month,day)
    # #Birthday(year, month, day) 等于Birthday 的对象 ,self.bir 是Teachers 的属性
    # 所以 Teachers这个类 以Birthday 的对象作为属性
    # class Birthday:
    # def __init__(self,year,month,day):
    # self.year = year
    # self.month = month
    # self.day = day
    # boss_Jin = Teachers('太白',33,'男',1999,3,15)
    # print(boss_Jin.bir.day)
    # -------------

    # 组合3 实例
    # 一个类的对象 Birthday(year,moth,day)是另一个类的Teachers 的属性,self.bir
    # 圆环的面积和周长
    # from math import pi
    # class Circle:
    # def __init__(self,circle_r):
    # self.circle_r = circle_r
    # def perimetre(self):
    # return 2*pi*self.circle_r
    # def area(self):
    # return pi*self.circle_r**2
    # class Rings:
    # def __init__(self,d_R,d_r):
    # self.d_R = Circle(d_R)
    # self.d_r = Circle(d_r)
    #
    # # Circle()这个是圆的对象 左边的是属性 Rings这个类 以Circle这个类的对象为属性 叫组合
    # def ring_perimetre(self):
    # return self.d_R.perimetre()+self.d_r.perimetre()
    # def ring_area(self):
    # return self.d_R.area()-self.d_r.area()
    # ring = Rings(10,5)
    # print(ring.ring_perimetre())
    # print(ring.ring_area())
    # 派生属性 : 在自己的init方法里 使用父类的init方法 —— 指名道姓调用方法
    #派生方法 : 在子类中增加父类没有的
    #只要子类有,就有子类的
    #只要想用父类,Animal.eat(snoopy) 父类名.父类的方法(子类对象) 2.7经典类中
    # --------
    #实例组合4
    # 第一种普通攻击 相互 组合 一个类以另一个类的对象为属性。
    # class Person :
    # def __init__(self,name,aggresivity,life_value,money):
    # self.name = name
    # self.aggresivity = aggresivity
    # self.lv = life_value
    # self.money = money
    #
    # def attack(self,dog_obj):
    # print('%s攻击了%s'%(self.name,dog_obj.name))
    # dog_obj.lv -= self.aggresivity
    # def get_weapon(self,weapon_obj):
    # if self.money > weapon_obj.price:
    # self.money -= weapon_obj.price
    # self. weapon = weapon_obj
    # # weapon_obj 是武器打狗棍的对象,然而self。weapon 是属性
    # # 正好 一个人的类 以武器的类的对象为属性
    # self.aggresivity += weapon_obj.agge
    #
    # class Dog :
    # def __init__(self,name ,aggresivity,life_value):
    # self.name = name
    # self.aggr = aggresivity
    # self.lv = life_value
    #
    # def bite(self,person_obj):
    # print('%s攻击了%s'% ( self.name,person_obj.name))
    # person_obj.lv -= self.aggr
    # class Weapon:
    # def __init__(self,name,agge,price):
    # self.name = name
    # self.agge = agge
    # self.price = price
    #
    # boss_Jin = Person('金太郎',100,600,100)
    # huang = Dog ('皮皮',30,500)
    # dgg = Weapon('打狗棍',50,99)
    # boss_Jin.get_weapon(dgg)
    # boss_Jin.attack(huang)
    # print(huang.lv)
    # huang.bite(boss_Jin)
    # print(boss_Jin.lv)
    # -------------
    # 以下知识点出了类的组合,还有类的 子类调用父类的方法 1父类名 2 super() 注意super 在内外的区别
    #用子类的对象,调用父类的方法:
    #如果子类中没有这个方法,直接就使用父类的
    #如果子类中有同名方法:
    # 经典类 指名道姓 类名.方法名(子类对象) 类内外一致
    # 新式类 super方法 super(子类名,子类对象).方法名() 类内可以省略super的参数
    # class Animal:
    # def __init__(self,name,aggresivity,life_value):
    # self.name = name
    # self.aggresivity = aggresivity
    # self.lv = life_value
    # def eat(self):
    # self.aggresivity+=50
    # print('恭喜您新增50点攻击力')
    #
    # class Person(Animal):
    # def __init__(self,name,aggresivity,life_value,money):
    # # Animal.__init__(self,name,aggresivity,life_value)
    # super().__init__(name,aggresivity,life_value)
    # self.money = money
    # def eat(self):
    # # Animal.eat(self) #效果1 和效果2相同
    # # super().eat() #效果1 和效果2相同
    # self.aggresivity += 5
    # print('恭喜您新增5点攻击力')
    # def attack(self,dog_obj):
    # print('%s攻击了%s'%(self.name,dog_obj.name))
    # dog_obj.lv -= self.aggresivity
    # def get_weapon(self,weapon_obj):
    # if self.money > weapon_obj.price:
    # self.money -= weapon_obj.price
    # self. weapon = weapon_obj
    # self.aggresivity += weapon_obj.agge
    #
    # class Dog(Animal) :
    # def __init__(self,name ,aggresivity,life_value):
    # # Animal.__init__(self, name, aggresivity, life_value)
    # # 1派生属性 : 在自己的init方法里使用父类的init方法 —— 指名道姓调用方法
    # super().__init__(name, aggresivity, life_value)
    # # 2 这个也是派生属性,()只是里面不需要有参数 1和2 效果是一样的
    # def eat(self):
    # # Animal.eat(self)
    # self.aggresivity += 5
    # print('恭喜您新增5点攻击力')
    # def bite(self,person_obj): # 派生方法 :父类没有的方法
    # print('%s攻击了%s'% ( self.name,person_obj.name))
    # person_obj.lv -= self.aggresivity
    # class Weapon:
    # def __init__(self,name,agge,price):
    # self.name = name
    # self.agge = agge
    # self.price = price
    #
    # boss_Jin = Person('金太郎',100,600,100)
    # huang = Dog ('皮皮',200,500)
    # dgg = Weapon('打狗棍',50,99)
    # boss_Jin.get_weapon(dgg)
    # boss_Jin.attack(huang)
    # print(huang.lv)
    # huang.bite(boss_Jin)
    # print(boss_Jin.lv)
    # ---
    # boss_Jin.eat()
    # print(boss_Jin.aggresivity)
    # 恭喜您新增5点攻击力
    # 105
    # -----
    # boss_Jin.eat()
    # print(boss_Jin.aggresivity)
    # 恭喜您新增50点攻击力
    # 恭喜您新增5点攻击力
    # 155

    # boss_Jin.get_weapon(dgg)
    # Animal.eat(boss_Jin)
    # super(Person,boss_Jin).eat() ***** 注意super(默认(本层的类名)(自己的对象))
    # boss_Jin.eat()
    # print(boss_Jin.aggresivity)
    # 恭喜您新增50点攻击力
    # 恭喜您新增5点攻击力
    # 205
    while True:
    username = input('请输入您的角色')
    if username == '学员':

    elif username == '讲师':

    elif username == '管理员':

    else:
    break

    class School:
    school1 = '北京学校'
    school2 = '上海学校'
    class Classes :
    def __init__(self,cycle,price):
    self.cycle = cycle
    self.price = price

    class Bj_school(School):
    class1 = 'Python'
    class2 = 'linux'

    class Sh_school(School):
    class3 = 'go'




  • 相关阅读:
    C# 数组
    一个遍历算法
    php csv导出
    linux 配置 crontab
    LINUX 配置SVN
    Linux chkconfig命令
    Linux 安装mysql+apache+php
    linux 安装samba
    linux安装软件的学习
    LINUX中简单的字符命令
  • 原文地址:https://www.cnblogs.com/xiaoluoboer/p/7868203.html
Copyright © 2011-2022 走看看