Python3快速入门(四)——Python包管理

  

Python3快速入门(四)——Python包管理

  

一、Python包简介

  

1,包   

Python中使用包管理模块,包通常对应一个目录,必须在目录下创建一个<强> init . py模块,<强> init . py模块的模块名称即为包名,Python才会将目录解析为包。
<强> init . py文件内可以定义初始化包的内容,导入包的内容,限制包内模块的导出。
<强> init 。py文件可以为空,也可以是一个模块,其模块名称为包名称。
导入包或包的模块,变量,函数时,<强> init . py文件会被自动执行。

  

2,模块

  

Python中一个。py文件就是一个模块。
Python中用进口或者从…进口来导入相应的模块。
将整个模块(somemodule)导入,格式为:进口somemodule
从某个模块中导入某个函数或变量,格式为:从somemodule进口somefunction
从某个模块中导入多个函数、格式为:从somemodule进口firstfunc secondfunc, thirdfunc
将某个模块中的全部函数或变量导入,格式为:从somemodule导入* <代码>

  
 <代码>导入系统
  打印('================Python导入模块==========================')
  打印(“命令行参数为:')
  因为我在sys.argv:
  打印(我)
  打印(“python路径为”,sys.path)
  
  从系统导入argv,路径#导入特定的成员
  
  打印('================python进口===================================')
  打印(argv)
  打印(路径) 
  

对导入的模块进行重命名
导入包。模块名称
进口导入包或模块时,如果导入模块较多需要换行,可以使用反斜杠,或是将使用小括号将包含所有的模块。
包和模块不会被重复导入。

  

3模块的内置变量

  

模块内部预定义了内置变量:
<>强名称:当前模块名称
<强>包:当前模块所属包的名称
<强>医生:当前模块的注释内容
<强>文件:当前文件

  
 <代码> # - * -编码:utf - 8 - *
  打印(“名字:”+ __name__)
  打印(“包:”+ (__package__或“当前模块不属于任何包”))
  打印(“医生:”+ (__doc__或“当前模块没有任何注释”))
  打印(“文件:”+ __file__)
  #名称:__main__
  #包:当前模块不属于任何包
  医生:当前模块没有任何注释
  #文件:test.py  
  

如果某个文件被当作入口文件,内置变量<强>包没有值,<>强名称强值为主要<强> 强,<强>医生强,<强>文件强值为文件名称(不含路径)。
每个模块都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分模块是主执行文件还是被调用的模块文件,Python引入了一个变量<>强名称强,当文件是被调用时,<>强名称的值为模块名,当文件作为入口被执行时,<>强名称为“主要<强> 强”。因此,可以在每个模块中写上测试代码,测试代码仅当模块被Python直接执行时才会运行,代码和测试结合在一起,完美实现对测试驱动开发(TDD)的支持。

  
 <代码> if __name__==癬_main__”:
  function_name()  
  

将一个模块文件作为模块执行而不是应用执行的命令如下:
<代码> python3 - m "

  

二,Python包管理

  

1,导入包和模块

  

进口只能导入包和模块,不能直接导入变量或者函数。对于多层包嵌套后导致导入名称过长,可以为其重命名。

  
 <代码>进口package1.package2.module_name
  进口package1
  进口package1.module_name
  进口package1.package2。module_name作为new_name  
  

导入包和模块时需要避免循环导入,两个或者多个模块文件互相导入会报错。
Python在导入模块时,会执行模块里的所有内容,但多次导入只会执行一次。
进口导入包或模块时,Python解释器寻找模块的优先级如下:
,当前目录
B环境变量到PYTHONPATH
C系统。路径(列表类型)
模块在被导入执行时,Python解释器为加快程序的启动速度,会在与模块文件同一目录下自动生成.pyc文件,.pyc是经过编译后的字节码。
Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行。

  

2,导入变量和函数

  

导入某个模块的变量,多个使用逗号分隔package1.package2
<代码>。module_name进口variable_name

  

导入某个模块的函数,多个使用逗号分隔package1.package2
<代码>。module_name进口function_name

Python3快速入门(四)——Python包管理