# day 4
# 类中成员变量描述对象的属性值根据对象不同,会产生区别,称此类变量为实例变量
# 类中成员变量描述对象的属性值根据对象不同,会产生区别,称此类变量为类变量#
# class QieZi:
#     sub = "people"
#
#     def __init__(self):
#         """构造方法,可以自定义参数,类似于c++的构造函数"""
#         self.type = "茄子少将"  # 共有属性,类似public
#         # 实例变量
#         self.name = None  # 不给值
#         self.__dnmd = None  # 私有变量的定义格式
#
#     # 成员方法
#     def get_dnmd(self):
#         """私有变量的封装 :访问器"""
#         return __dnmd
#
#     def set_dnmd(self, member):
#         """私有变量的封装 :修改器"""
#         self.__dnmd = member
#
#     def speak(self):
#         print("wdnmd!")
#
#     def talk(self, i):
#         j = 0
#         while j < i:
#             print("我叼你妈的!")
#             j += 1
#
#     def introduce(self):
#         """ 想要在方法中调用类型的公共变量得加一个self"""
#         print("我是%s,我叫%s,我喜欢说”%s“" % (self.type, self.name, self.words))
#
#     def __WDNMD(self):
#         """私有方法的定义"""
#         return " "
#
#     def __str__(self):  # 魔术方法,在打印输出对象到屏幕时运行
#         return "叼你妈的,还想看老子内存""""类方法
定义格式:
class 类名:@classmethoddef 方法名(cls,形参):方法体调用格式:
类名.方法名(实参)
对象名.方法名(实参)NOTE:实例方法可以调用类方法(变量)类方法不可以调用实例方法(变量)小结:类很高贵,实例不配实例是类的舔狗
"""#
# #############
"""
静态方法
定义格式:
class 类名:@staticmethoddef 方法名(形参):方法体 和类没啥关系,和普通函数没区别
"""# 类的继承
"""
定义格式:
class 类名(父类)passNOTE:子类不能调用父类的私有成员子类可以添加父类没有的成员
"""
#  类的多态继承
"""定义格式:class 类名(父类1,父类2,....)pass、
父类在前面先被调用
多继承重写
调用格式:1.父类名.方法名(对象)2.spuer(本类名,对象).方法名3.supper().方法名()"""# 例如# class Animal:
#     """父类:动物类"""
#
#     def __init__(self):
#         self.name = None
#         self.age = None
#         self.__we = None  # 私有变量,子类无法继承
#
#     def Speak(self):
#         """
# 用来说话
#         """
#         print("我叼你妈的")
#
#     pass
#
#
# class Cat(Animal):
#     """子类:猫类"""
#     def Speak(self):
#         """重写"""
#         print("我柜子动了")
#         """
#         在子类中调用父类中被重写的实例方法
#         调用格式:
#         1.父类名.方法名(对象)
#         2.spuer(本类名,对象).方法名
#         3.supper().方法名()
#         """
#         Animal.Speak(self)
#         super(Cat, self).Speak()
#         super().Speak()
#
#     pass
#
#
# cat = Cat()
# cat.name = "是我,你蝶"
# cat.age = 333
# # TODO 用于查看继承层次关系,object是所有类的父类
# print(Cat.__mro__)
# """
# 在子类中可以定义与父类相同名称的方法,此时子类的方法对父类的方法构成了重写
# """
# cat.Speak()"""
案例:”反恐精英“程序
要求:三个恐怖分子与反恐精英枪战没人设定100生命值,生命值为0视为死亡一方全部死亡枪战结束以对象体现:
两个类
抽取人 类:有100血
枪战做成方法
""""""
信息显示模式:
"""
# 随机数
# random
"""
1.先导入包 import random
2.random.randint(1,3)
"""import randomclass Person:def __init__(self, name):self.name = nameself.life = 100def __str__(self):"""用于显示状态"""return "%s当前的生命值为:%s" % (self.name, self.life)class Hero(Person):def fire(self, p):damage = 40# 加入命中率hit = random.randint(1, 100)if hit >= 20:print("%s向%s开枪,造成了 %d伤害" % (self.name, p.name, damage))p.life = p.life - damageif p.life <= 0:p.life = 0else:print("wdnmd,没打中" )def __str__(self):"""用于显示状态"""state = ""if self.life == 100:state = "无伤"elif self.life >= 70 and self.life < 100:state = "轻伤"elif 1 <= self.life < 100:state = "重伤"elif self.life == 0:state = "没了"return "%s当前的状态为:%s" % (self.name, state)class IS(Person):def fire(self, p):damage = 5hit = random.randint(1, 100)if hit >= 40:print("%s向%s开枪,造成了 %d伤害" % (self.name, p.name, damage))p.life = p.life - damageif p.life <= 0:p.life = 0else:print("%s:芽儿哟,没打中" %self.name)def main():h = Hero("茂名磨刀石")is1 = IS("磨刀人")is2 = IS("pdd")is3 = IS("lbw")while True:#产生随机数x = random.randint(1, 3)if x == 1:h.fire(is1)elif x == 2:h.fire(is2)elif x == 3:h.fire(is3)is1.fire(h)is2.fire(h)is3.fire(h)print(h)print(is1)print(is2)print(is3)print()#设置结束条件if h.life <= 0:print("%s死亡,枪战结束" %h.name)breakif is1.life <= 0 and is2.life <= 0 and is3.life <= 0:print("%s死亡,枪战结束" % is1.name)breakmain()

Python基础,类的继承,类的多态继承等相关推荐

  1. Python基础(六)--类与对象

    目录 Python基础(六)--类与对象 1 类与对象的基本概念 1.1 什么是对象 1.2 什么是类 1.3 类与对象的关系 2 定义与初始化 2.1 类的定义 2.2 对象的初始化 2.3 动态增 ...

  2. Python基础笔记_Day12_Python元类、type动态创建类、Python动态创建方法、Python运算符、Python发邮件、短信

    Day12_Python元类.type动态创建类.Python动态创建方法.Python运算符重载.Python发邮件.短信 12.01_Python语言基础(类对象)(熟悉) 12.02_Pytho ...

  3. Python基础教程:新式类与经典类

    1.新式类 在 py3 里面的继承 object 的类,以及它的子类都是新式类 多继承的情况下,会按照广度优先的方式查找 为什么调用父类 ''' 遇到问题没人解答?小编创建了一个Python学习交流Q ...

  4. Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员]   目录 0.复习 1.类外部添加和获取对象属性 2.类内部操作属性 3.魔法方法 3.1.__i ...

  5. Python基础学习笔记-7.类-面向对象的编程

    7.类-面向对象的编程 7.1.类的定义 7.1.1.类的概述 面向对象更符合人类对客观世界的抽象和理解 一切皆对象 一只小狗,一把椅子,一张信用卡,一条巧克力... 一切对象,都有自己内在的属性 狗 ...

  6. python基础3----函数与类

    目录 模块 time模块--时间 random模块--随机生成数字 random.randint(a,b) **random.choice()**函数 random.random() 函数 定义函数 ...

  7. 【无为则无心Python基础】— 59、类和对象的综合应用

    文章目录 1.烤地瓜 (1)需求 被烤的时间和对应的地瓜状态: 添加的调料: (2)步骤分析 地瓜的属性 地瓜的方法 (3)代码实现 @1.地瓜属性 @2.定义烤地瓜方法 @3.书写str魔法方法,用 ...

  8. python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  9. python基础教程:Counter类

    Counter类的目的是用来跟踪值出现的次数.它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value.计数值可以是任意的Interger(包括0和负数).Counte ...

  10. python基础之函数和类

    8.函数 #函数 #1.定义函数的关键字 def def greet_user():'''简单的问候语'''print("hello this is function")#调用函数 ...

最新文章

  1. 现存最古老计算机手册重见天日,比ENIAC要先进!
  2. Linux查看CPU,内存,GPU,进程,版本,系统内核信息
  3. matlab 代码风格,10 Matlab 函数与代码风格
  4. 各种测序基础知识汇总
  5. 【数据库】Navicat Premium12远程连接MySQL数据库
  6. 拓端tecdat|R语言使用Bass模型进行手机市场产品周期预测
  7. afp专用计算机,FRM考试只能用这些金融计算器(内含用法功能全解读)
  8. django注册登录
  9. 【转载】第6节: 六类Calander处理六种不同的时间场景
  10. LeetCode 6118. 最小差值平方和
  11. H3C恢复console登录密码
  12. 柔性电子 --基于碳纳米管的柔性压力传感器
  13. ROS1云课→17化繁为简stdr和f1tenth
  14. template报下面的错误
  15. 使用javascript通过className来获取元素
  16. C51学习笔记 9.蜂鸣器
  17. hdfs大概流程和命令操作
  18. PPT精品模板:个人创意销售企业公司介绍PPT
  19. 【Leetcode】19. Remove Nth Node From End of List (cpp)
  20. Netty中的永动机

热门文章

  1. 创业公司CEO与技术大拿必读:CEO与大拿之间的距离
  2. 2017电影经典语句
  3. 量化策略及其中国市场容量
  4. java ibatis mybatis_Mybatis与Ibatis的区别
  5. python list,元组,字典的相关概念及操作
  6. 运维经理:如果连CentOS网络配置都不会,就收包袱走人吧
  7. 贝壳二手房爬虫,搞搞房价
  8. 高德地图天气图标符号大全_手机版腾讯地图和高德地图实测对比
  9. 【微信群助手机器人】好不好用?可以实现哪些功能?
  10. python print函数中“end“的作用及使用方式