2024-09-26 17:46:07 发布
网友
我正在从一个模块中导入许多函数
用起来更好吗
from my_module import function1, function2, function3, function4, function5, function6, function7
这有点混乱,但避免了将该模块或
from my_module import *
它看起来很整洁,但会用该模块中的所有内容填充名称空间。
在PEP8中找不到有关按名称导入的限制的任何内容。哪个更好,为什么?
如果介于两者之间,使用
参见import this中的“显式优于隐式”。
import this
如果你只想要一个比my_module.function1短的名字,总有import my_module as mod。
my_module.function1
import my_module as mod
对于您多次使用的少数函数(或者多次键入以便使用短名称,或者在循环中键入以便访问速度很重要),有
func1 = my_module.function1
通过一点管理,您可以控制导入*的内容。假设您的my_模块具有function1..function8,但您只想使函数1到6可用。在myu模块中,重新分配__all__属性:
__all__
我的模块.py:
__all__ = ['function1', 'function2', 'function3' ...] def function1(): ... # etc...
现在如果您使用from my_module import *,您将只从my module.py导入在__all__属性中定义的那些函数和变量。
如果你真的需要那么多函数,你已经在污染你的命名空间了。
我建议:
import my_module
或者,如果我的模块有一个长名称,请使用别名:
import my_long_module as m
如果介于两者之间,使用
参见
import this
中的“显式优于隐式”。如果你只想要一个比
my_module.function1
短的名字,总有import my_module as mod
。对于您多次使用的少数函数(或者多次键入以便使用短名称,或者在循环中键入以便访问速度很重要),有
通过一点管理,您可以控制导入*的内容。假设您的my_模块具有function1..function8,但您只想使函数1到6可用。在myu模块中,重新分配
__all__
属性:我的模块.py:
现在如果您使用
from my_module import *
,您将只从my module.py导入在__all__
属性中定义的那些函数和变量。如果你真的需要那么多函数,你已经在污染你的命名空间了。
我建议:
或者,如果我的模块有一个长名称,请使用别名:
相关问题 更多 >
编程相关推荐