python基础语法——异常和模块的导入问题

异常


try..1.except.2..else  3,即如果1中捕获到异常,那么就执行except中的语句;如果1中没有捕获到异常,则执行else中的语句

 可以用raise语句抛出一个异常

try...finally...语句用来表达这样的情况:

在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。比如文件关闭,释放锁,把数据库连接返还给连接池等

如果try嵌套,那么如果里面的try没有捕获到这个异常,那么外面的try会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再进行传递。。。

如果一个异常是在一个函数中产生的,例如函数A---->函数B---->函数C,而异常是在函数C中产生的,那么如果函数C中没有对这个异常进行处理,那么这个异常会传递到函数B中,如果函数B有异常处理那么就会按照函数B的处理方式进行执行;如果函数B也没有异常处理,那么这个异常会继续传递,以此类推。。。如果所有的函数都没有处理,那么此时就会进行异常的默认处理,即通常见到的那样

===========================================================================

模块和包的导入


  import module1,mudule2...   导入模块

from 模块名 import 函数名1,函数名2....   导入模块中的函数/类/全局变量

from 模块名 import *   引入模块中所有的东西

__all__ 只能限制from模块名 import *

__all__ 是一个列表

from 模块名 import * 中 只有在__all__里面的元素 才可以被被导入的模块的正常使用

当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。也就是说假如模块A中有函数function( ),在模块B中也有函数function( ),如果引入A中的function在先、B中的function在后,那么当调用function函数的时候,是去执行模块B中的function函数。

import 模块名 as 自定义名称。在当前模块中,调用模块中的函数/类/变量时,用自定义名称代替函数/类/变量名

当你导入一个模块,Python解析器对模块位置的搜索顺序是:

当前目录

如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。

如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/

模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录

python在执行一个文件时有个变量__name__,当__name__=’main’时,表示,直接运行本模块,当等于模块名时,为运行导入了此模块的其他模块

包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,__init__.py文件中的语句,导入是会自动执行。那么这个文件夹就称之为包

包可以有效避免模块名称冲突问题,让应用组织结构更加清晰

猜你喜欢

转载自blog.csdn.net/qq_36893938/article/details/81020167