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