从Python modu导入多个函数

2024-06-16 09:05:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从一个模块中导入许多函数

用起来更好吗

from my_module import function1, function2, function3, function4, function5, function6, function7

这有点混乱,但避免了将该模块或

from my_module import *

它看起来很整洁,但会用该模块中的所有内容填充名称空间。

在PEP8中找不到有关按名称导入的限制的任何内容。哪个更好,为什么?


Tags: 模块函数fromimport名称内容mymodule
3条回答

如果介于两者之间,使用

from my_module import function1, function2, function3, function4, function5, function6, function7

参见import this中的“显式优于隐式”。

如果你只想要一个比my_module.function1短的名字,总有import my_module as mod

对于您多次使用的少数函数(或者多次键入以便使用短名称,或者在循环中键入以便访问速度很重要),有

func1 = my_module.function1

通过一点管理,您可以控制导入*的内容。假设您的my_模块具有function1..function8,但您只想使函数1到6可用。在myu模块中,重新分配__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

相关问题 更多 >