学习日记24

今日内容

mixnins机制
# 1.多继承分主类和辅类,继承辅类就有该辅类中的功能,不影响子类使用,辅类使用特殊结尾(Minxin,able,ible)
# 2.规范写法,辅类写在主类左边
class Vehicle:  # 交通工具
   pass
   
   
class Flyable():
   def fly(self):
       '''
      飞行功能相应的代码        
      '''
       print("I am flying")


class CivilAircraft(Flyable,Vehicle):  # 民航飞机
   pass


class Helicopter(Flyable,Vehicle):  # 直升飞机
   pass


class Car(Vehicle):  # 汽车并不会飞,但按照上述继承关系,汽车也能飞了
   pass
内置方法
__init__():
   
__str__():只有在打印对象的时候自动触发
   
__del__():1.手动删除对象的时候自动触发
   2.应用程序运行完毕自动触发,清理资源
   
补充:
isinstance('123', str) # 判断'123'是不是str的实例
   issubclass(Foo, object)# Foo是不是object的子类
   
__getattr__:当你访问一个不存在的属性时会触发

__setattr__:给对象添加/修改属性会触发
   
__call__:当对象加括号调用的时候就会自动触发
   
__gt__:满足比较的条件下自动触发
其他内置方法看博客
反射
class Student():
   school = 'sh'
   
   
obj = Student()
x = inpot('请输入学校')
print(obj.x) # 报错,因为x是字符串

反射的作用就是通过字符串操作类属性或者方法
如果取不到这个值就用紧跟其后的值

print(getattr(obj,x,None))

判断有没有类中有没有这个属性
print(hasattr(obj,x))

设置类里的值
setattr(obj,'c',10)

删除类里的属性
delattr(obj,'school')

调用函数方法
getattr(obj,'func')()
异常
1.什么是异常
异常就是错误发生的信号,当遇到该信号就会抛出异常,如果不对该异常做处理,那么此后的代码都不再运行
   
   具体来说,异常分为两种:
  1.语法错误 # SyntaxError
  2.逻辑错误
      print(x)
           尽量把逻辑写的完美
2.为什么用异常
为了增强代码的可靠性,健壮性,
   
3.如何使用异常

# NameError: name 'x' is not defined
print(x)

# IndexError: list index out of range
l = [1,2,3]
l[5]

# KeyError: 'k1'
dic = {'k':'v'}
dic['k1']

# AttributeError: 'Foo' object has no attribute 'x'
class Foo():
   pass
obj = Foo()
obj.x

# TypeError: 'int' object is not iterable
for i in 123:
   pass

# ZeroDivisionError: division by zero
1/0

等等,如何处理
try:
   被检查代码
   被检查代码
   被检查代码
   被检查代码
   被检查代码
   被检查代码
   pass
except 异常信息1 as e:
   捕捉到异常信息
except 异常信息2 as e:
   捕捉到异常信息
except 异常信息3 as e:
   捕捉到异常信息
except 异常信息4 as e:
   捕捉到异常信息
except Exerption as e:
   只要前面的错误信息没有捕捉到,都算这个
else:
   当被检测的代码没有异常时会执行
finally:
   不管被检测的代码有没有异常都会执行
断言
l = [1,2,3]
if len(l) < 5:
   raise Exception('断言失败')
print('end---->')

#断言
assert len(l) = 5
#断言l的长度必须是5,如果不是5就抛出异常,是5就当没写

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

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

raise Myexception('出异常了')

 

posted @ 2021-07-15 19:48  小白白柏柏  阅读(142)  评论(0)    收藏  举报