Python基本语法学习(四)

11 Python异常

11.1 异常捕获

try:
    # 正常的代码
except (异常类型):
    # 捕获到异常时的处理,可以捕获多种异常类型,使用逗号分隔
    # 如果不填写异常类型则会捕获所有的异常
else:
    # 没有异常时的操作,这个可加也可不加,不加的话就直接退出层级关系就行
finally:
    # 不管有没有异常都可执行
  • 如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
  • 如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
  • 如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

11.2 raise异常抛出

        当我们的程序出现异常判断时可以通过raise主动抛出异常中断当前程序,抛出给上层程序进行捕获。

try:
   a = 10
   if(a < 18):
       raise Exception('你还未成年不能参加工作')
except Exception as e:
    print(e)

11.3 自定义异常

        有时候我们在设计程序时需要多很多判断,因此在命中我们自己的异常判断时需要有一个自己的异常类,这时可以通过创建一个新的异常类。新的异常需要继承Exception类,通过直接或间接的方式。

class myException(Exception):
    def __init__(self,code,message):
        self.message = message
        self.code = code
try:
   a = 10
   if(a < 18):
       raise myException('1001','你还未成年不能参加工作')
except myException as e:
    print(e.code,e.message)

12 Python模块

12.1 模块的定义

        Python模块时定义的类、函数和变量的一个文件,可以在模块里单独实现一些功能,通过不能的模块实现不同的功能,在项目中可以直接导入模块进行使用,这样做可以帮我们将代码进行独立化和解耦。

12.2 模块的导入

[from 模块] import [模块 | 类 | 变量 | 函数 | *] [as 别名]

  1. import 模块  # 导入某个模块,导入后可以使用该模块下的所有方法等,使用方法: 模块.方法
  2. form 模块 import 类|变量|函数  # 导入某个模块的类或变量或方法
  3. from 模块 import * # 导入某个模块的所有功能,使用时直接用方法名就行 这个跟第一个区别在于使用时不一样。

注意:在模块导入时有一个__all__变量,不设置时默认__all__变量为所有的内容,如果设置的话,当import * 时只会导入被设置的内容。__all__变量只对 * 起作用,对指定导入时不受影响。

12.3 自定义模块

        在正常写代码时避免不了需要实现一个自己定义的模块,python中一个模块就是一个python的文件,文件名其实就是我们的模块名。

        因此自定义模块,第一步新建一个.py文件,第二步import文件名即可。

12.4 Python包

        上面我们提到过Python的模块其实就是一个Python的文件,那么如果模块太多的话就会有很多的文件,那么如何最文件进行归类呢?Python包就是将模块进行归类,它其实就是一个文件夹,在文件夹里包含一个__init__.py的文件,这个文件就是证明这个路径下是一个统一的包。

        Python包的引入和模块的引入方式是一样的。

扫描二维码关注公众号,回复: 15210413 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_64940494/article/details/126398924