内置方法
class Student():
def __init(self,name,age):
self.name = name
self.age = age
#在打印或者输出对象的时候,会自动触发该函数
def __str__(self):
#返回值的结果只能是字符串。不能是整型
return self.name
#在删除对象的时候自动触发,或者在程序执行完毕后也会触发
def __del__(self):
print('触发了')
#出现with语句,会自动触发该函数,有返回值则赋值给as生命的变量
def __enter__(self):
print('出现with语句,会自动触发该函数,有返回值则赋值给as生命的变量')
#with中代码块执行完毕时会自动触发
def __exit__(self):
print('with中代码块执行完毕时会自动触发')
#当获取属性不存在的时候会触发__getattr__
def __getattr__(self):
print('当获取的属性不存在的时候会触发__getattr__')
#当设置的属性不存在的时候会触发__setattr__
def __setattr__(self):
print('当设置的属性不存在的时候会触发__setattr__')
def __delattr__(self):
print('当设置的属性不存在的时候会触发__delattr__')
反射
getattr()
setattr()
hasattr()
delattr()
class Student():
school = 'SH'
def func(self):
print('from func')
stu = Student()
#获取对象中的值
print(getattr(stu,'school'))
#修改或添加对象值
print(setattr(stu,'x','oldboy'))
#查看是否有值 返回布尔类型
print(hasattr(stu,'school')) #True
#删除属性值
delattr(Student,'school')
print(Student__dict__)
异常
1. 什么是异常?
异常就是错误发生的信号,如果不对该信号做处理,程序就会终止运行
2. 为什么要用异常?
为了增加代码的健壮性
3. 如何使用异常?
try
pass
except 异常的类型:
pass
else:
print('没有发生异常的时候执行')
finally
print('不管有没有异常都会执行')