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