try:
需要测试的代码
except 错误类型:
错误提示
else:
如果欸有异常则处理else后面的内容
finally:# finally和return相遇的时候,依然执行
执行的代码
# 人狗大战游戏
def person(name,blood,attack,sex):
# 人的技能——打
def attach(person,dog):
dog['blood'] -= person['attack']
print('%s被打了,掉了%s的血' % (dog['name'],person['attack']))
person = {
'name':name,
'blood':blood,
'attack':attack,
'sex':sex
}
return person
alex = person('狗子',100,1,'unknow')
nezha = person('哪吒',90,1,'男')
print(alex)
print(nezha)
# 这样做(定义一个函数)精简,方便增加参数,方便修改,也增加了游戏的规范——创建了一个人模子
def Dog(name,blood,attack,sex,kind):
# 狗的技能——咬
def bite(dog,person):
person['blood'] -= dog['attack']
print('%s被咬了,掉了%s的血' % (person['name'], dog['attack']))
dog = {
'name':name,
'blood':blood,
'attack':attack,
'sex':sex,
'kind':kind
}
return dog
erhu = Dog('jinlaonban',1000,100,'unknow','teedy')
print(erhu)
bite(erhu,alex)
print(alex)
{'name': '狗子', 'blood': 100, 'attack': 1, 'sex': 'unknow'}
{'name': '哪吒', 'blood': 90, 'attack': 1, 'sex': '男'}
{'name': 'jinlaonban', 'blood': 1000, 'attack': 100, 'sex': 'unknow', 'kind': 'teedy'}
狗子被咬了,掉了100的血
{'name': '狗子', 'blood': 0, 'attack': 1, 'sex': 'unknow'}
class Person:
def __init__(self,*args): # self相当于一个字典,他把后面的*args的值绑在了一起
self.name = args[0]
self.hp = args[1]
self.aggr = args[2]
self.sex = args[3]
# init 函数不能与return函数混合用
jinjia = Person('大王',200,566,200,'who知') #这个返回的至就是一个对象
print(jinjia.name)
print(jinjia.hp)
print(jinjia.aggr)
print(jinjia.sex)
print(jinjia.__dict__)
print(jinjia.__dict__['name'])
# 对象=类名():
#过程;
#类名() 首先会创建一个对象,创建了一个self变量
#调用init方法,类名括号里面的参数会被这里接收
#执行init方法
#返回self
大王
200
566
200
{'name': '大王', 'hp': 200, 'aggr': 566, 'sex': 200}
大王
class类名:
def init(self):pass 初始化方法,创建了一个slef空对象,这个slef里面存的属性是以字典形式存在的。
静态属性 = ‘***’
对象 = 类名() #实例化:创造了袷self独享,执行init方法,返回self对象给外部
对象.属性
对象.方法 用对象去调用方法,这个方法就被称为绑定方法。
类可以使用对象里的属性么?false
#例
class A:
def __init__(self):
selff.name = 'ego'
class B:
def __init__(self):
self.year = year
self.month = month
self.day = day
b = B(18,5,9)
a = A()
a.birth = b
b.year
a.birth.year
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
10 self.day = day
11
---> 12 b = B(18)
13 a = A()
14 a.birth = b
TypeError: __init__() takes 1 positional argument but 2 were given