Python从模块导入所有名称

示例

from module_name import *

例如:

from math import *
sqrt(2)    # 而不是math.sqrt(2)
ceil(2.7)  # 代替math.ceil(2.7)

这会将math模块中定义的所有名称都导入到全局名称空间中,而不是以下划线开头的名称(这表明编写者认为该名称仅供内部使用)。

警告:如果已经定义或导入了具有相同名称的函数,则它将被覆盖。几乎总是仅导入特定的名称from math import sqrt, ceil是推荐的方式

def sqrt(num):
    print("I don't know what's the square root of {}.".format(num))

sqrt(4)
# 输出:我不知道4的平方根是多少。

from math import * 
sqrt(4)
# 输出:2.0

加星标的导入仅允许在模块级别进行。尝试在类或函数定义中执行它们会导致SyntaxError。

def f():
    from math import *

class A:
    from math import *

都失败了:

SyntaxError: import * only allowed at module level