在Python中,可以使用from module import name
的语法来进行命名导入,这样只会导入指定的名称,而不是整个模块。这种方式可以避免命名冲突和不必要的内存消耗。
相比之下,使用from module import *
的语法会导入整个模块的所有名称,包括所有公开的变量、函数和类。这种方式可能会导致命名冲突和代码可读性的降低,因此在实际开发中不推荐使用。
如果想要禁用*
导入,可以在模块中使用__all__
变量来限制可以被导入的名称。__all__
是一个包含字符串的列表,指定了模块中可以被导入的名称。当使用from module import *
时,只有__all__
中列出的名称会被导入。
以下是一个示例:
# module.py
__all__ = ['name1', 'name2']
name1 = 'John'
name2 = 'Jane'
name3 = 'Tom'
# main.py
from module import name1, name2
print(name1) # 输出: John
print(name2) # 输出: Jane
print(name3) # 报错: NameError: name 'name3' is not defined
在这个示例中,只有name1
和name2
被导入,而name3
由于没有包含在__all__
中,所以无法被导入。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云