python模块与包的调用

  

模块(模块)

  

什么是模块

  

一个. py文件就是一个模块(模块)。
在开发过程中我们不会把所有的代码都写在一个. py文件中。随着代码量的增大,可以按照功能将函数或者类分开存放到不同的py文件中。

这样代码更方便管理,以及后期的维护,也便于其他程序来调用当前已经实现的功能~

在开发过程中,我们也经常引用其他模块,例如:时间,操作系统,configparser、再保险等等
在Python中模块一般有如下3种:
1) Python内置模块
2)第三方模块
3)自定义模块

  

模块的导入

  
导入语句
  

导入模块的语句如下:

  
 <代码>进口module1 [, module2 [,……moduleN]
  或
  进口module1
  进口module2
  …
  进口moduleN  
  

具体使用哪一种方式根据个人习惯而定,导入模块后,模块中的方法或者类可以通过模块名。方法()直接调用~

  ,
 <代码>祝辞的在比;导入的时间
  在在在time.time() #()为时间模块中的方法
  1545832129.4365451
  在在在进口日期时间
  在在在datetime.datetime.now () # datetime为datetime模块中的类
  datetime。datetime(49 2018、12、26日,21日,2,805953) 
  

当我们使用导入语句导入模块时,Python解释器首先会去内置名称空间中寻找,即判断导入的模块是不是内置模块(例如时间模块就是Python内置模块),然后再去系统。路径列表中定义的路径从前往后寻找py文件
如下是在个人笔记本上输出的sys.path列表:

  
 <代码> # pycharm中进行输出:
  ['/用户/宝贝/PycharmProjects untitled/模块”,
  “/用户/宝贝/PycharmProjects/untitled”,
  地窖的/usr/地方//python/3.7.1/框架/Python.framework/版本/3.7/lib/python37.zip ',
  地窖的/usr/地方//python/3.7.1/框架/Python.framework/版本/3.7/lib/python3.7 ',
  “/usr/地方/地窖/python/3.7.1/框架/Python.framework/版本/3.7/lib/python3.7/lib-dynload ', '/usr/地方/lib/python3.7/网站”,
  '//PyCharm.app/内容/应用助手/pycharm_matplotlib_backend ')
  
  #在终端进行输出:
  在在在sys.path
  [",/usr/地方/地窖/python/3.7.1/框架/Python.framework/版本/3.7/lib/python37.zip ',
  地窖的/usr/地方//python/3.7.1/框架/Python.framework/版本/3.7/lib/python3.7 ',
  “/usr/地方/地窖/python/3.7.1/框架/Python.framework/版本/3.7/lib/python3.7/lib-dynload ',
  “/usr/地方/lib/python3.7/网站”) 
  
      <李>可以看到系统。路径在pycharm中的输出和在终端的输出略有区别,在pycharm中,pycharm会自动将当前项目的路径添加在系统。路径列表的最前面。所以若是在当前路径下存在与要引入模块同名的文件,就会把要引入的模块屏蔽掉~

    系统。路径列表中其中一个路径下的文件如下:   
     <代码> ?~ ls/3.7/lib/python3.7/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/版本
      许可证。txt fileinput。py re.py
      __future__。py:。py reprlib.py
      __phello__.foo。py格式化程序。py rlcompleter.py
      …
      代码… 
      
  
进口的过程h5> 现在我自己编辑了一个模块sftp,内容如下:

  
 <代码> server_ip=?92.168.0.30”
  
  def get_file ():
  打印(“ddownload文件…”) 
  

然后在main.py文件(与sftp。py在同一个路径下)中进行导入:

  
 <代码>进口sftp  
  


在进口sftp时,Python解释器会首先创建一个新的名称空间,这个名称空间用于存放sftp模块中定义的名字,然后在该名称空间中执行sftp。py文件。
例如现在在sftp模块中添加打印语句,然后执行main.py文件:

  
 <代码> # sftp.py
  server_ip=' 192.168.0.30 '
  
  def get_file ():
  打印(“ddownload文件…”)
  
  打印(“你好....”)
  
  # main.py
  进口sftp
  
  #执行主要。py后会有如下输出:
  你好....  
  

导入语句可以理解为定义了一个变量,而该变量就指向对应的名称空间,通过使用这个变量来引用该名称空间中的方法及变量~

进口sftp之后,注意区分新创建的名称空间和当前的名称空间,示例如下:

  
 <代码> # sftp.py
  server_ip=' 192.168.0.30 '
  
  def get_file ():
  打印(“ddownload文件…”)
  
  # main.py
  进口sftp
  
  server_ip='为1.2.3.4 '
  
  打印(server_ip)
  打印(sftp.server_ip)
  
  #执行主要。py后会有如下输出:
  为1.2.3.4
  192.168.0.30 

python模块与包的调用