1 ############### 调用其它路径下面的模块和包 ###################################
2
3 import sys
4 sys.path.append(r"/hyy/python/model/model_name")
5 sys.path.append(r"目录路径")
6
7 ############ 模块 #################################
8 ---说明1:
9 一个.py结尾的文件,就可以叫做是模块。
10 模块就是普通的.py .pyc .pyo文件
11 使用import导入(即相当于把1.py文件中的源代码拷贝到当前被导入文件中)
12
13
14 ------------------------ 模块的举例 ---------------------------------
15
16 例:
17 模块mymod.py 内容如下:
18 def func_sum(arg):
19 print sum(arg)
20 print "zzzz"
21
22 -- 即from后面的名字前缀可以省略掉。
23
24
25 ## 使用方法1:
26 import mymod ## 模块导入的时候即会被执行
27
28 print "bb"
29 a=[1,2,3,4,5,6]
30 mymod.func_sum(a) ## 执行模块中的函数(必须前面有模块名的前缀)
31
32 结果:
33 zzzz
34 bb
35 21
36
37
38 ##使用方法2:
39 from mymod import func_sum
40
41 print "bb"
42 a=[1,2,3,4,5,6]
43 func_sum(a) ## 执行模块中的函数(这里不能有模块名的前缀)
44
45 结果:
46 zzzz
47 bb
48 21
49
50 -------------------模块的特性----------------------------------------
51
52 -- 说明2:
53 需要用到内置变量 __name__
54 在本文件中被调用 __name__ 值为 __main__
55 在其它文件被调用 __name__ 值为模块的文件名
56
57 则在模块中可以写如下判断代码:
58 ## 因为模块被导入时,会被执行
59 ## 如时不想让模块中的main函数在导入import时被执行。则模块中要写此语句
60 if __name__ == '__main__':
61 main()
62
63
64
65 -----------------------------补充 -----------------------------------
66 补充:
67 --源代码 1.py
68 以.py结束 python源代码的文件
69 --字节代码 1.pyc
70 以.pyc结束 是源文件经过编译后生成的
71 import py_compile --引入编译模块
72 py_compile.compile("1.py") ---进行编译,生成了.pyc文件(二进制文件)
73 --优化代码 1.pyo
74 经过优化的源文件, 以.pyo结尾(二进制文件)
75 python -O -m py_compile 1.py
76
77 注意:
78 以上.py .pyc .pyo 三种文件都可以直接运行,
79 执行.py 是解释执行 相对来说较慢
80 执行.pyc 和.pyo 则是以二进制来执行是比较快的
81
82
83 ########## 包 #################################
84 1, 创建包
85
86 说明1:
87 包是模块的集合(所有的模块文件放在一个文件夹下就是一个包)
88 包中(即文件夹)必须有一个模块名为:__init__.py 的文件(可空可不为空,即表名此文件夹为包)
89 说明2:
90 一般__init__.py文件中可以写包的一些相关信息(比如这个包是干嘛的)
91 因为包在调用时,都会自动执行这个名为__init__.py 的模块文件
92
93
94 -----------包的调用-------------------------
95 说明:
96 com 是包名,即目录名
97 util 是模块名,即目录下文件名,
98 func_sum 是模块中的函数
99
100 -- 即from后面的名字前缀可以省略掉。
101
102 --方法1:
103 import com.util
104 com.util.func_sum()
105
106 方法2:
107 from com import util
108 util.func_sum()
109
110 方法3:
111 from com.util import func_sum()
112 func_sum()
113
114 方法4
115 from com.util import *
116 func_sum()