面向对象编程
所谓模子就是 类 抽象的,能知道什么属性,但是不知道属性具体值
一切都是对象 有具体值 属性和技能都是根据类 模子来规范
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 血