包的导入
几种导入方式
-
import 包名
import time time.time()
-
import 包名,包名
import time,sys time.time() sys.path
-
from 包名 import 模块名
from time import time time()
-
from 包名 import *
导入指定包下所有模块
from time import * time()
__all__暴露指定属性
test.py:
__all__ = ['func1'] def func1(): print('from func1') def func2(): print('from func2')
from test import * func1() func2() # NameError: name 'func2' is not defined # 只能访问到导入原文件中__all__中指定的属性
导入时的查找顺序
- python内部会先在sys.modules里面查看是否包含要导入的包\模块,如果有,就直接导入引用
- 如果第1步没有找到,python会在sys.path包含的路径下继续寻找要导入的模块名.如果有,就导入,没有就报错.(pycharm会默认把项目路径加入到sys.path])
异常处理
try: ret = int(input('number >>>')) # 'a' print(ret * '*') except ValueError: # 输入a时转int失败 throw ValueError print('输入的数据类型有误') except Exception: print('会捕获任何异常') else: print('没有异常的时候执行else中的代码')