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 血
  • 相关阅读:
    基于视网膜虹膜识别的内容分级系统
    C# 反射详解一
    C# 委托浅析
    .Net Core中使用Dapper构建泛型仓储
    C# 泛型详解
    非对称可逆加密RSA
    对称可逆加密Des
    .NET Core 3.0 中间件 Middleware
    .NET Core3.0 日志 logging
    .Net Core3.0依赖注入DI
  • 原文地址:https://www.cnblogs.com/shijieli/p/9914331.html
Copyright © 2011-2022 走看看