Hzangyao

导航

面向对象中常用的内置方法,以及反射的四个方法,异常处理

内置方法

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('不管有没有异常都会执行')

posted on 2022-02-21 16:07  Hzangyao  阅读(13)  评论(0编辑  收藏  举报