python模块的导入详解
Posted lxx99
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python模块的导入详解相关的知识,希望对你有一定的参考价值。
一:一个小问题:什么是模块?
我的理解是:有通用功能的文件的集合。
二:为什么要使用模块?
我们通常为了使自己以前写的东西保存下来,会把东西写入文件中保存下来,必要时我们把这些文件当脚本去执行,也可以把他们当做模块导入其他的模块中,实现了功能的存放利用。
三:怎样导入自己的模块?
自定义demo模块:
print(‘in demo.py‘)
money=100
def read():
print(‘in read‘,money)
print(__name__)
‘‘‘import demo
def read():
print(‘lxx‘)
money=200
demo.read()
print(demo.money)
过程:
1.找到模块 2.(先从sys.modules(字典)里查看是否已经导入了模块,如果没有被导入,就依据sys.path路径寻找模块,找到了就导入)创建这个模块的命名空间 3.把文件中的名字都放到命名空间里
import sys
print(sys.modules.keys())#首先看看模块在不在‘‘‘
关于模块的各个方法:
# import time as tt #给模块起别名 重命名之后之前的名字不能用了
# print(tt.time())
from time import sleep #单独从某个模块中导入一个方法或者是变量
# from demo import read
# read()
# from demo import * #能导入全部的东西
# # print(money)
# # read()
# # read2()
# from math import pi #pi特定的:圆周率
# print(pi)
# pi=234
# print(pi)
#结果:
# 3.141592653589793
# 234
五:把模块当做脚本执行:我们可以通过模块的全局变量__name__来查看模块名
自己写的文件 demo __name__ 得到的是:main
但当你导入这个模块的时候 __name__ 得到的就是demo名字
所以 这个方法可以:当我们想要一个方法是现在自己写的文件上,但不希望他使用在被导入的模块中的时候。
六:导入模块是要注意的地方:
1.所有模块导入应尽量往上写。
2.导入循序最好是:内置模块--》扩展模块--》自定义模块
3.检查模块不会重复被导入:sys.moudles
4.从哪导入模块:sys.path
5.from 模块名 import * 和 _all_ 是一对,没有这个变量就会导入所有的,如果有all就只导入all列表中的。
以上是关于python模块的导入详解的主要内容,如果未能解决你的问题,请参考以下文章