本文已参加【新人创作礼】活动,一起开启掘金创作之路
今天是暑假在家自学的第十天
昨天学习了多继承,多态,类方法,今天学习静态方法
静态方法
静态方法不需要1.访问实例属性或者调用实例方法 2.也不需要访问类属性或者调用类方法。
简单的说:在使用的时候不需要实例化就可以调用
class Dog():
@staticmethod
def help():
print("这是静态方法")
Dog.help()
输出结果: 这是静态方法
可以看出Dog类并没有实例化但是可以直接使用
异常
1.异常的概念
程序在运行过程中,如果Python解释器遇到一个错误,会停止程序的运行,并且提示一些错误的信息,就是异常。
2.异常的捕获
try: 尝试执行的代码 except: 出现错误的处理
举例子如下:
try:
num=int(input("请输入一个数字:"))
except:
print("请输入正确的数字")
完整的异常捕获语法:
try:
except:
else:不会出错的时候执行的代码
finally:不管是否有异常都会在最后执行
举例如下
try:
num=int(input("请输入一个数字:"))
result=8/num
print(result)
except ValueError:
print("请输入正确的数字")
except ZeroDivisionError:
print("分母不能为0")
except Exception as result:
print("未知错误:%s" % result)
else:
print("正常执行")
finally:
print("不管是否正常执行都会显示")
3.Python抛出异常显示异常所在行数和文件夹
try:
num = 1 / 0
except Exception as e:
print(e)
print(e.__traceback__.tb_frame.f_globals["__file__"])
print(e.__traceback__.tb_lineno)
Exception as e中,将Exception起了一个代号e,也就是说将异常起名为e,便于写下面的代码
4.函数调用异常:
函数调用异常可以将异常的捕获写的更简单,在企业中经常这样子使用,可以避免写很多的except,可以使用一个函数来返回异常,如下例的demo2():
def demo1():
num= int(input("请输入一个整数:"))
print("demo1:{}".format(num))
return num
def demo2():
return demo1()
try:
print("try:{}".format(demo2()))
except Exception as resule:
print("发生异常,需要输出整数")
format()方法可以用来传入任何一个类型的参数
可以用as e这种方法直接在异常中输出:
try:
print("try:{}".format(demo2()))
except Exception as result:
# print("发生异常,需要输出整数")
print("未知错误:%s"% result)
3.抛出raise异常
raise可以作为用户自定义异常进行抛出
e=Exception
raise e
raise异常还可以更进一步简化为assert:
try:
assert 1==0,"程序在这里发生错误"
except Exception as e:
print(e)
这种写法在机器学习中经常遇到
===============================================================
异常的学习结束,算是一个小的知识点