python 关于import
突然想到个问题,当我一个工具文件module_name中有很多方法,在另一个py文件中需要用到,那么我有三个方法
from module_name import *import module_name
from module_name import fun
但是在这个py文件中我一定不会都用到,并且有些方法只需要修改一些小地方,但有些工具方法之间嵌套,那么是不是第一种*最优雅?直接覆盖重写就好?
比如这样嵌套
def f1(x): print(x)
def f2(x):
f1(x)
如果我不想在py文件种打印,那么我直接在重写py文件中重写f1就行,但如果不用*,就要或多或少的多修改很多东西。
那么,是不是还是import * 最舒服?
回答:
from * import func,*
这种方式导入的任何函数,你“重写”的时候,只是重新定义了一个函数,并在当前命名空间内把func这个名字指向新函数对象罢了,看起来是把原来的函数“覆盖”了,其实对你导入的那些对象没影响。就比如这样一个对象A:
A.x=1A.y=2
i=A.x
i=3 #一般情况下,A.x的值并不会变。
i=A
i.y=3 #这样A.y就变了
python中一切皆对象,module也是。如果你想自己的修改对原模块内部起作用,就要把模块整体导入,修改它内部对象module_name.x。
以上是 python 关于import 的全部内容, 来源链接: utcz.com/p/937970.html