点这里,搜索淘宝优惠券!
点这里,搜索淘宝优惠券!

模块与包

【定义模块】

【发布模块】

【安装模块——使用自定义模块】:

  1,将模块放在指定(环境变量 Path下的目录)的文件夹下

    Python解释器会搜索系统环境变量中的目录寻找模块文件。可以把自己的模块放到系统环境变量中的某一个目录——site-packages 是python公认的存储模块文件的路径,我们应该尽量把自定义模块放到这个路径对应的文件夹下

  2,将模块放在某一位置,然后告诉Python解释器去哪寻找

    可以把模块的存储路径添加到系统环境变量Path。但是某些情况下不能修改系统的环境变量!更加标准的做法是把模块的存储路径放到PYTHONPATH变量里,多个路径以:或者;分割。

【导入模块】

  模块的名称与模块文件的名称相同

  模块是程序,在第一次导入时,模块中定义的代码会被执行/解析。

  导入模块并不意味着在导入时执行某些操作,导入的主要作用是定义

  互相导入不会陷入死循环——每个模块只能导入一次。

【重新导入模块】:reload

【.pyc文件与.py文件】:.py格式的是源文件,.pyc格式的是源文件经过编译后的文件,可以加快编译速度。当源文件更新时,会重新编译。注意,不能删除源文件只保留.pyc文件;可以删除.pyc文件,解释器发现没有这个.pyc文件时,会重新编译生成此文件。

【.pyw文件】:GUI——图形界面相关的文件,以此格式存储,可以避免弹出控制台窗体(万恶的大黑框)

【在模块中加入测试代码】

  直接执行模块文件时,__name__ == __main__

  将模块文件作为模块导入时,__name__ == 模块的名字

  利用上述特性,可以在模块文件中加入测试代码如下:这样当导入模块时测试函数不会被执行,而当单独执行模块文件时,则可完成模块测试 

1 def hello():
2     print “Hello World !”
3 
4 def moduleTest():
5     hello()
6 
7 if __name__ == "__main__":
8     moduleTest()

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

【了解未知模块的内容】:

  dir:列出对象的所有特性

  __all__:定义模块的所有公有接口,在copy模块内部被设置,指定 import * 时导入哪些变量和函数。默认情况下 import * 回倒入所有不以下划线开头的全局名称

  help:显示函数原型和文档字符串

  __doc__:文档字符串

  阅读源代码:__file__:查看文件的存储位置;一些模块文件可能是空的——已经融入到解释器中,或者是使用C语言写成的。

【将模块打包】:

  包就是模块所在的目录,为了使这个目录能成为包,需要在目录内创建 __init__.py文件。

  __init__.py 中的内容会在导入包时被导入

  以Keras为例:Keras包中包含 models utils 等模块

1 import Keras #导入Keras包,此时 __init__.py 中的内容可以使用,子包中的内容不能使用
2 import Keras.models #导入 models 模块,使用 Keras.models.xxx 的方式访问模块中的内容
3 
4 from Keras import utils #导入 utils 模块,使用 utils.xxx 的方式访问模块中的内容
5 from Keras.models import Sequential #直接使用 Sequential()函数

  以上语句的执行顺序没有要求,没有必要一定先执行 import Keras 再执行 import Keras.models

 

posted @ 2018-09-19 13:33  chd_ailex  阅读(146)  评论(0编辑  收藏  举报