首页 > 代码库 > python中的模块,以及包的导入的总结
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()demoIn [3]: demo1()-----------------------------------------------------------------------NameError Traceback (most recent call last)<ipython-input-3-a8330644fa2e> in <module>()----> 1 demo1()NameError: name ‘demo1‘ is not definedIn [4]:
不加__all__示例:
1 def demo(): 2 3 print("demo") 4 5 def demo1(): 6 print("demo1")
运行结果:
In [1]: from TT import *In [2]: demo()demoIn [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文件。
python中的模块,以及包的导入的总结