论Python导入模块的三种修养【干货】

最进有些萌新老是混洗python导入模块的三种方法,甚至不知道各个都有什么作用,这回我来彻底讲解下,让你们不再迷茫。

修养一: import 模块名

直接使用 import ,但是再调用模块中的函数的时候,需要加上模块的命名空间。写个例子看看:

#用于计算摄氏度和华氏度的相互转换
# cf_t1.py

def c2f(cel):
	fah = cel * 1.8 + 32
	return fah
def f2c(fah):
	cel = (fah -32) / 1.8
	return cel

再写一个文件来导入刚才所写的模块:

# cf_t2.py

import cf_t1
print("32摄氏度 = %.2f 华氏度" % cf_t1.c2f(32))
print("99华氏度 = %.2f 摄氏度" % cf_t1.f2c(99))

程序实现如下:

32摄氏度 = 89.60 华氏度
99华氏度 = 37.22 摄氏度

修养二: from 模块名 import 函数名

第一种方法有些读者可能不是很喜欢,因为这个模块的名字太长了,每次调用模块里的函数都要写这么长的命名空间,真是费力不讨好又容易出错,所以第二种方法应运而生。
这种导入方法会直接将模块的命名空间覆盖进来,所以调用的时候也就不需要再加上命名空间了:

# cf_t3.py

from cf_t1 import c2f, f2c
print("32摄氏度 = %.2f 华氏度" % c2f(32))
print("99华氏度 = %.2f 摄氏度" % f2c(99))

如果要写入的函数名过多,这里还可以使用通配符星号(*)来导入模块中所有的命名空间:

from cf_t1 import *

笔者个人观点:在导入模块的时候应尽量避免通配符的导入,因为这样就不清楚当前名称空间中存在哪些名称了。为了清楚起见,最好坚持使用常规导入方法 (import 模块名)。(毕竟在写大项目的时候,某个函数出现了BUG,为了能找到这个函数是来自哪个模块是必不可少的,所以为了以后方便也不在乎多打点字的)建议:可以遵循PEP 8 的建议不使用通配符导入 。

修养三: import 模块名 as 新名字

最好的总是留在最后,第三种方法结合了前两种的优势,使用这种方法可以给导入的命名空间起个新名字:

# cf_t4.py

import cf_t1 as tc
print("32摄氏度 = %.2f 华氏度" % tc.c2f(32))
print("99华氏度 = %.2f 摄氏度" % tc.f2c(99))

提示:强烈要求大家不要使用这种方法,因为这样做会使得命名空间的优势荡然无存,一不小心还会陷入名字混乱的局面。


真是的,是不是发现了,说了这么多,到头来还是建议使用常规方法导入模块。
是的,这只是建议而已,这个其实是根据自身情况来判定的啦,多数情况下是使用常规方式而已。
因此你可根据自身情况灵活使用的。


原文链接https://blog.csdn.net/weixin_43347550/article/details/106048759

猜你喜欢

转载自blog.csdn.net/weixin_43347550/article/details/106048759
今日推荐