如何在python中导入正确的方式?

星期二便便:

我正在学习python编程,我想了解一些信息。
我正在使用OOP进行一个小项目。这是项目结构的示例:

PROJECT_FOLDER  
    |__ main.py  
    |__ modules  
         |__ __init__.py  
         |__ Example.py  

要导入我的类(这里只是一个,但通常更多),我应该一个一个地导入每个文件,还是在__init__.py文件中创建一个“ all”规则

这是我的想法:

# Example.py
class Example:
    def __init__(self):
        print('Hello from Example')

第一个想法:

# First version of __init__.py is an empty file
# First version of main.py
from modules.Example import Example

my_example = Example()

或者,第二个主意:

# Second version of __init__.py
__all__ = ['Example']
# Second version of main.py
from modules import *

my_example = Example.Example()

根据我在文档和此处阅读的内容,最好避免使用,import *因为它可能会造成混淆。但是,如果需要导入56个类,是否应该在开始编码之前写56行代码来导入我的类?而且,使用该命令import *将迫使我编写my_example = Example.Example()不美观的内容,并且可能也会造成混淆。

总而言之,用类名(包括大写的首字母)来命名类文件更好吗?我了解到这是PHP的一种好习惯,但是python似乎还有其他约定(例如,蛇案),pylint总是很乐意提醒我:)

谢谢您的答复,祝您有美好的一天!

汤米:

关于python导入,有一些常规约定。import *称为通配符导入,无论您使用哪种编程语言,最好都避免使用通配符导入。如果您所有的56个类都在一个文件中,则可以像导入它from my_file import class_1, class_2, ...您可以使用括号使其更整洁,from my_file import (class_1, class_2, class_3, ...)如果您的类不在一个文件中,则将它们导入init .py中,然后可以像上面的示例一样将它们全部导入一行。使用python导入的另一种约定是始终从导入标准库开始,然后是第三方软件包,最后是您自己的模块。例如

导入系统

汇入要求

从my_package导入some_thing

python中的类应为CamelCase,对于模块,带下划线的单词应分开。 from MyClassName import my_module

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章