作者回复: 包的概念涉及了文件系统和目录结构,为了照顾更多的初学者,减轻对模块的认知负担,这里的讲解我弱化了包的概念;
包是使用“.模块”的模块命名空间,例如视频里面讲解的os.path,sys.path这种方式,os和sys就是包,这两个path就是模块;使用包和模块可以有两种方式, 即 import 包.模块 、 from 包 import 模块,从上面两个同名的path不难发现,如果程序需要使用这两个模块,而且能够区分他们的话,就要使用import方式,包的作用就体现在引用和运行时能够对他们的一个区分。
还有一种特殊情况就是包里还有一个包,即子包:包在文件系统上面是一个目录形式,有时候有需求要在目录下再编写目录—子包,这种情况下就要用到 from 包 import 子包 的形式,引用子包里面的模块(以.py结尾的文件)就要使用 子包.模块的形式来使用这些模块了。
在早期的Python2中包还有一个文件要学习,这个文件叫做__init__.py,用于包中的子包和模块的搜索功能,在Python3中这个文件也可以省略了。
希望这些包的相关知识能够扩展你对模块的理解。更多请参考官方文档:
https://docs.python.org/3/tutorial/modules.html#packages
作者回复: python的模块有一个搜索路径,通过下面的方法可以查看
import sys
print(sys.path)
如果你的mymod.py 没有在下面的路径里面就找不到mymod这个模块了
作者回复: import 33module1
^
SyntaxError: invalid syntax
按照报错信息应该是书写错误
作者回复: 一、 要使用modmy.print_me() 来调用啊
二、另一种方法是:
from modmy import print_me
print_me()
作者回复: 当然可以了,那问题就转化为怎么把别的文件引入当前的脚本文件,可以使用import 来实现的