python中的模块,以及包的导入的总结

模块导入的方式:

  模块的概念:一个.py文件就称为一个模块

导入模块中函数的方式:

    方式一:import  模块名

      使用时:模块名.函数名()

    方式二 :from 模块名 import  函数名

      使用时:函数名()

    方式三: from 模块名 import *

      使用时:函数名()

    方式四:from 模块名 import 函数名 as  tt(自定义)     注意原来的函数名将失效

      使用时:tt()

可以在模块当中定义一个变量__all__:

    使用__all__的影响:  后面的[]里面写什么函数名,使用from 模块名 import *方式导入时导入什么  __all__如果没有这个变量将全部导入(__all__仅限 于from 模块名 import *这种导入方式)

加__all__示例:

  1 __all__ = ["demo"]
  2 def demo():
  3 
  4     print("demo")
  5 
  6 def demo1():
  7     print("demo1")

  运行结果:

In [1]: from TT import *

In [2]: demo()
demo

In [3]: demo1()
-----------------------------------------------------------------------
NameError                             Traceback (most recent call last)
<ipython-input-3-a8330644fa2e> in <module>()
----> 1 demo1()

NameError: name 'demo1' is not defined

In [4]: 

不加__all__示例:

 1 def demo():
  2 
  3     print("demo")
  4     
  5 def demo1():
  6     print("demo1")

  运行结果:

In [1]: from TT import *

In [2]: demo()
demo

In [3]: demo1()
demo1

包的导入方式

  概念:包含了几个py文件....里面在创建一个__init__文件就是包

导入包中函数,以及模块的方式:

  方式一:from 包名  import  模块名

   使用时:模块名.函数名()

  方式二:from 包名.模块名  import 函数名

  使用时:函数名()

  方式三 :import  包名.模块名      

   使用的时候   包名.模块名.函数名()

  方式四:from  包名  import  *    

  前提是:将 __init__.py 文件中写入__all__变量(写入方式同模块导入的写入方式)  变量当中写入哪个模块则导入哪个模块,不写则什么都不导入

   使用时:模块名.函数名()

  方式五:import 包名    

  前提是:在包里面的__init__.py   文件里写入    from . import  模块名   __init__.py里面导入哪个模块     通过本方式就能使用哪个模块

   使用时:模块名.函数名()

  方式六:import 包名  

  Python2当中可以在__init__.py文件中写入 Import 模块名  通过import 包名 就可以导入__Init__.py文件中写入的那个模块名(此方法仅限python2)

   使用时:模块名.函数名()

.pyc文件的介绍:

        导入会产生一个.pyc的字节码文件,此文件是当第一次导入时python解释器会将被导入的模块预解释成字节码的文件,下次再导入时python解释器则不会做预解释而是直接拿.pyc文件使用,这样就不会每次导入时做解释的操作,节省时间,当修改模块文件的内容时,python解释器会根据.pyc文件和模块的修改时间判断有没有对模块做修改,如果模块的修改时间比.pyc文件的晚说明模块已经被修改  Python解释器会将模块重新解释成.pyc文件。

posted @ 2017-07-23 19:26  凯哥吧  阅读(6102)  评论(0编辑  收藏  举报