有没有办法在函数中使用" from math import * "?


def mathImport():
from math import *

我不知道这是否可能,如果不可能,有其他方法可以做这样的事情吗?

无法在嵌套作用域(即函数或类(中使用*-导入。由于模块global命名空间之外的变量作用域是在编译时确定的,因此*-imports的运行时名称绑定不起作用。

7.11.导入语句

导入的通配符形式from module import *只允许在模块级别使用。试图在类或函数定义中使用它将引发SyntaxError。

显式导入所需名称:

def mathImport():
from math import ceil
...

与其导入所有,不如引入您需要的

def myfunction():
from math import pi, tan
# work with imports

根据Pythonimport文档,from module import *的使用是一种通配符形式,不允许在类或函数定义中使用。此外,使用这种语法不是一个好的做法,请参阅本文档以了解风险。

您不能在函数中导入模块并全局使用它们,也不能从字符串中导入。

有一个名为import-lib的模块,您可以使用它以编程方式按字符串导入模块。

https://docs.python.org/3/library/importlib.html#module-importlib

>>> module = importlib.import_module("time", ".*")
>>> module.time()
1619787987.921014
>>> 

最新更新