zoukankan      html  css  js  c++  java
  • day25 面向对象引子

    面向对象编程
    所谓模子就是 类 抽象的,能知道什么属性,但是不知道属性具体值
    一切都是对象 有具体值 属性和技能都是根据类 模子来规范
     1 # 人狗大战
     2 
     3 # 角色模型
     4 # 人的模型
     5 def Person(name,blood,aggr,sex):
     6     person = {
     7         "name": name ,
     8         "blood": blood,            # 血量
     9         "aggr": aggr,            # 攻击
    10         "sex": sex,
    11     }
    12     def attack(dog):
    13         dog["blood"] -= person["aggr"]
    14         print("%s 被 %s打了,失去了%s 血" % (dog["name"], person["name"], person["aggr"]))
    15     person["attack"] = attack    # 增加一个技能
    16     return person
    17 alex= Person("狗剩儿",100,1,"不详")
    18 nezha= Person("糯扎",200,2,"不详")
    19 print(nezha)
    20 # 用函数定义一个东西,方便增加人物,方便修改,更加规范,人模子
    21 
    22 # 狗的模型
    23 def Dog(name,blood,aggr,kind):
    24     dog = {
    25         "name": name ,
    26         "blood": blood,
    27         "aggr": aggr,
    28         "kind": kind,
    29     }
    30     def bite(person):
    31         person["blood"] -= dog["aggr"]
    32         print("%s 被 %s咬了,失去了%s 血" % (person["name"], dog["name"], dog["aggr"]))
    33     dog["bite"] = bite
    34     return dog
    35 jin= Dog("金星",100,1,"teddy")
    36 suyang= Dog("苏阳",1,1,"狗东西")
    37 print(suyang)
    38 suyang["bite"](nezha)
    39 nezha["attack"](suyang)
    40 
    41 # {'name': '糯扎', 'blood': 200, 'aggr': 2, 'sex': '不详', 'attack': <function Person.<locals>.attack at 0x00000000028702F0>}
    42 # {'name': '苏阳', 'blood': 1, 'aggr': 1, 'kind': '狗东西', 'bite': <function Dog.<locals>.bite at 0x0000000002870488>}
    43 # 糯扎 被 苏阳咬了,失去了1 血
    44 # 苏阳 被 糯扎打了,失去了2 血
  • 相关阅读:
    Linux-文件编程
    Linux-编程基础
    Linux-系统管理
    Linux-命令
    图解HTTP-笔记
    微信小程序发送红包功能。填坑记录
    PHP中使用raw格式发送POST请求
    论一个PHP项目上线的注意点
    PHP CURL 模拟form表单上传遇到的小坑
    使用php的curl函数post返回值为301永久迁移的问题。(301 Moved Permanently)
  • 原文地址:https://www.cnblogs.com/shijieli/p/9914331.html
Copyright © 2011-2022 走看看