gpt4 book ai didi

python - PEP8 导入约定

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:42 26 4
gpt4 key购买 nike

在导入模块时,我试图坚持最佳实践,我试图了解什么 PEP8谈到这一点。

假设我的框架有数百个类和几十个包。例如,PyQt5 或 sympy 将是不错的候选者...这组中的最佳选择是什么?

a) 导入所有内容

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

print(QPoint)
print(QPixmap)
print(QApplication)

b) 仅导入大包并为整个应用程序使用前缀

from PyQt5 import QtCore, QtGui, QtWidgets

print(QtCore.QPoint)
print(QtGui.QPixmap)
print(QtWidgets.QApplication)

c) 从大包中导入特定的类

from PyQt5.QtCore import QPoint
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication

print(QPoint)
print(QPixmap)
print(QApplication)

选项 a) 是 PEP8 不鼓励的,那么 b) 或 c) 呢...PEP8 对此有何建议?

最佳答案

没有任何建议,因为它很大程度上取决于您的项目以及您可能遇到的潜在名称冲突。如果您还没有 QPoint 对象(无论是您自己的,还是可能来自不同的包),您可能会发现仅读取和写入 QPoint 会更容易需要的地方使用符号。

但是,如果您将来与也提供 QPoint 的不同包进行交互,您将需要通过其父包引用它们,或者使用 PyQt5 中的 。在后续代码中引用 PyQt5Point 之前,QtCore 将 QPoint 导入为 PyQt5QPoint 语法。

关于python - PEP8 导入约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com