Mixin,内置方法,反射,异常

Mixin,able

父类后加  Mixin、able,称为辅类,引用辅类的子类后也需加  Mixin、able,
__str__ 

class Student():

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return self.name  # 返回值必须是字符串   ,__str__型 返回什么打印就是什么


obj = Student('wuc', 18)
# print(obj.name)
print(obj)    

内置方法

__del__

class Student():

    def __init__(self, name, age):
        self.name = name
        self.age = age
	
    
    1.手动删除对象执行
    2.程序执行完毕后自动触发
    def __del__(self):
        print('__del__')


obj = Student('wuc', 17)
del obj
# print(obj.name)


#isinstance
print(isinstance('abb',int ))  判断‘abb’是否是int型

#issubclass
class Foo:
    pass
print(issubclass(Foo,object))  判断Foo是否是object的子类

__getattr__  没有此方法会报错,
# 当你访问的属性不存在时触发


__setattr__
#给对象设置值的时候触发

__delattr__
#删除属性的时候会触发

__call__
#对象加括号会执行__call__方法
obj = Foo()
obj()   # 会执行__call__

反射

getattr
# 取值   print(getattr(obj, 'school1', None))

hasattr   #判断obj里是否有其后的值
# print(hasattr(obj, 'school1'))

setattr   # 给其赋值
setattr(obj, 'x', 10)

delattr   #删除类中的值
delattr(Student, 'school')
print(Student.__dict__)



class Student():
    school = 'sh'

    def func(self):
        print("func")

obj = Student()
getattr(obj,'func')()    #相当于调用func


handler = getattr(obj,'func')

def test(*args,**kwargs)
	return handler(*args,**kwargs)

getattr(time,'sleep')(2)


 time = __import__('time')
 time.sleep(2)

异常处理

"""
1. 什么是异常?
    异常就是错误发生的信号,当遇到该信号就会抛出异常, 如果不对该异常做处理,那么, 此后的代码都不再执行

    具体来说,异常分类两种:
        1. 语法错误
            # SyntaxError
            print(11
        2. 逻辑错误:  尽量把逻辑写到完美
            print(x)

2. 为什么用异常?
    为了增强代码的可靠性,健壮性

3. 如何使用异常?
        try:
    # 被监测的代码1
    # 被监测的代码1
    # 被监测的代码1
    # 被监测的代码1
    # 被监测的代码1
    pass
except 异常信息1 as e:
    # 捕捉到异常信息
except 异常信息2 as e
# 捕捉到异常信息
except 异常信息3 as e
    # 捕捉到异常信息
except 异常信息4 as e
    pass
except Exception as e:
    pass
else:
    print("当被监测的代码没有异常时候执行")
finally:
    print("不管有没有异常都会执行的")

"""

raise 断言


  #  自定义异常
class Myexception(BaseException):
    def __init__(self, msg):
        self.msg = msg

    def __str__(self):
        return "异常信息:%s" % self.msg

raise Myexception("出异常了哈哈哈哈")

import flask_session
posted @ 2021-07-16 14:42  wuc123  阅读(72)  评论(0)    收藏  举报