我是python的新手,只是在一个名为sample.py
的文件中创建了一些类class Student:
Name = ''
Age = ''
Gender = ''
class Employee:
EmpName = ''
EmpAge = ''
EmpClass = ''
现在我创建了另一个名为Hello.py的文件,并在其中导入了上述文件类
from sample import Student,Employee
我的问题是假设我在文件sample.py中有许多类,有没有办法导入sample.py中的所有类而不指定它们中的每一个。
答案 0 :(得分:6)
您可以使用以下行:
from sample import *
但请注意,这样做是不好的做法,因为您可以轻松地在两个文件中都使用相同名称的功能,这会导致一些丑陋的副作用。
我建议您尊重命名空间约定,而不是使用它:
import sample
student1 = sample.Student()
起初看起来似乎有点过头了,但我保证你会为你节省令人沮丧的时间,否则长期用于调试。
答案 1 :(得分:2)
是的,但不推荐!根据PEP8:
应该避免使用通配符导入(来自import *),因为它们不清楚命名空间中存在哪些名称,使读者和许多自动化工具都感到困惑。
要点是,使用通配符导入会使您的代码更难调试,特别是在您不再记得编写import语句几个月后,您正试图找出代码的作用以及所有这些类的来源从。但如果你绝对必须,语法是:
# Please don't use wildcard imports!
from sample import *
答案 2 :(得分:0)
您可以使用虽然不推荐,因为它会导致命名空间污染。更好的方法是package.property
。根据您的需要,您可以使用:
from sample import *
答案 3 :(得分:0)
您还可以使用模块中的__all__
标记,并选择要导出的元素:
class A:
pass
// will not be exported
class B:
pass
class C:
pass
__all__ = [ 'A', 'C' ]