我有一个 python3.5 项目,我决定为每个模块创建一个类。我决定这样做是因为我发现我的文件很长而且我很难理解发生了什么。
进行更改后,我感觉我在每个导入文件中重复自己:
from school.student import Student
from school.classroom import ClassRoom
from school.teacher import Teacher
有什么办法可以通过重复吗?我希望我的导入更像:
from school import Student, ClassRoom, Teacher
Use an __init__
模块来完成此任务。的内容__init__
导入父模块/包时会评估模块。像这样:
# __init__.py
from school.student import Student
from school.classroom import ClassRoom
from school.teacher import Teacher
这带来Student
, ClassRoom
and Teacher
进入school
命名空间。现在您可以使用导入school
模块如你所愿。
注意:这种方式很容易污染你的命名空间。最好按照您开始的方式在每个模块中显式导入,或者使用以下方法这个答案 https://stackoverflow.com/a/36556726/2437514并使用采用显式模块引用的类(例如,school.Teacher()
代替Teacher()
).
如果你觉得school.Teacher()
太长了,你可以这样缩短一些:
import school as sch
teacher = sch.Teacher()
etc etc.
然而,另一方面,如果这些类是对象should由于它们在包级别可用,因此将它们导入包命名空间可能是正确的做法。只有你才能做出这个决定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)