#跟着教程学# 9、模块和包

模块:就是.py文件,里面定义了一些函数和变量,需要的时候导入这些模块。

1、存一个模块

#存为名叫moudle.py的文件,它属于python里的模块。

def func_A():
    print'A!'
    
def func_B():
    print'B!'
    
def func_C():
    print'C!'

# Error: SyntaxError: file <maya console> line 1: invalid syntax #  

无效语法,检查.py文件语法写的是否错误。第一次写把“()”掉了,就报了上面的错误。

2、调用moudle.py模块方法1。

execfile("C:UsersAdministratorDesktopmoudle1.py")

func_A()
A!

# Error: IOError: file <maya console> line 1: 2 # 

如果遇到上面的错误,注意检查文件路径是否有误。

3、调用moudle.py模块方法2,导入。

如果直接import moudle1 会出错。# Error: ImportError: file <maya console> line 1: No module named moudle1 #  

可以导入sys模块。使用sys模块里面的path命令。把模块的路径添加到path里,然后再调用即可。其实也可以直接把模块文件放置到path找到的路径下,例如D:/Documents/maya/2018/scripts,也是可以调用的。

import sys

#把模块所在路径加到path下,然后打印所有路径检查是否加入
sys.path.append("C:/Users/lina/Desktop")
for i in sys.path:
    print i
    
#导入模块然后调用模块中的命令func_A
import module1

module1.func_A()

包:在模块之上的概念,为了方便管理而将文件进行打包。包目录下第一个文件是__init__.py,然后是一些模块文件和子目录。假如子目录中也有__inti__.py,那么它就是这个包的子包了。

包里可以放N个模块,但是需要在文件夹中加一个__init__.py文件,这个文件可以是空的,用空文档改后缀即可。这样直接导入文件夹名,就不会报错。一旦包被成功的引用之后,就会在文件夹内生成一个__init__.pyc的文件。

例如,新创建一个文件夹package,里面放三个文件,分别是module1.py,module2.py,__init__.py 。然后调用包里的模块的命令。下面是单独导入命令的两种方法。

import sys

#把包所在的路径添加到path下
sys.path.append("C:UserslinaDesktop")

#方法一
import package.module1

package.module1.func_A()

#方法二
from package import module2

module2.func_A()

导入整个包里的所有模块。需要在__init__.py文件中加入__all__ = ['module1','module2']

然后会导入列表中所列的模块。

#导入PKG包里的所有模块。重新载入。
from PKG import *,reload(PKG)

#执行模块A里的func_A命令
moduleA.func_A()
原文地址:https://www.cnblogs.com/3lina/p/11800144.html