Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从_init__u; py内导入类以生成较短的导入语句是否有问题?_Python - Fatal编程技术网

Python 从_init__u; py内导入类以生成较短的导入语句是否有问题?

Python 从_init__u; py内导入类以生成较短的导入语句是否有问题?,python,Python,为了便于组织,我将每个类都保存在自己的文件中。我还有一些文件夹可以将GUI对象与常规对象分开。我正在考虑从模块的init.py中导入类,以使导入更整洁 例如,而不是拥有: from myapp.widgets.preferencesdialog import PreferencesDialog 相反,我会从widgets/\uuu init\uuu.py中导入首选项对话框,这样应用程序的其余部分只需执行以下操作: from myapp.widgets import PreferencesDia

为了便于组织,我将每个类都保存在自己的文件中。我还有一些文件夹可以将GUI对象与常规对象分开。我正在考虑从模块的init.py中导入类,以使导入更整洁

例如,而不是拥有:

from myapp.widgets.preferencesdialog import PreferencesDialog
相反,我会从
widgets/\uuu init\uuu.py
中导入
首选项对话框
,这样应用程序的其余部分只需执行以下操作:

from myapp.widgets import PreferencesDialog

这种方法会有什么问题吗?

只要在
myapp.widgets
试图放入其命名空间的单独文件中没有多个名为
首选项Dialog
的类,这种方法就没有错


只需避免首选项中的
对话框导入*
myapp.widgets
中,您将需要显式地向
myapp.widgets
命名空间中添加任何新项,但您将避免所有与
相关的问题。。。导入*

这是一种非常常见的方法。谢谢,是的,我总是避免导入*。我喜欢明确地表达我的观点。