python 关于import

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=1

A.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

回到顶部