2 python包、模块相关

  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()

 

posted @ 2018-07-02 15:26  虫儿要吃草  阅读(152)  评论(0编辑  收藏  举报