2018-10-26 关于Python包和模块的10个知识清单

2018-10-29  本文已影响0人  dongdonghao

引自:https://www.itcodemonkey.com/article/9771.html

0、一个模块(module)就是一个py文件,模块的名字就是该文件的名字(不包含后缀)。

1、一个包(package)就是一个文件夹,包名就是文件夹名。

2、按import进来的对象不同分为4种场景:

3、解释器会按照 sys.path列表的顺序来查找被引用的包或模块名字。

优先加载当前工作目录下的模块,如果你的项目中使用了和内建模块中同名的包或模块名,就会遇到没有xx属性之类的报错提示。新手特别喜欢干这事。

4、你可以操作sys.path,使得其他路径的文件加入到Path中,使之能被解释器发现。

5、另一种加载模块的方法:如果你的模块不在sys.path下面,除了第4条建议外,还可以使用imp模块中的imp.load_source

import imp

imp.load_source("h1", "c://data/hi.py")

import hi

# 可以自己指定模块的名字,相当于 import hi as h2

imp.load_source("h2", "c://data/hi.py")

import h2

6、 import module 时, 模块中的所有代码将被执行(类对象, 函数对象将被创建,不会被调用), import package时, __init__.py文件中的代码也将被执行。

7、模块 __file__属性

导入模块时, 可以通过模块__file__属性查看模块所在磁盘的路径位置

8、永远不要用from <module> import *, 有不可预知的风险。

上一篇下一篇

猜你喜欢

热点阅读