例如,这是一个简单的版本。
from app import VERSION
def app():
print(VERSION)
if __name__ == '__main__':
app()
这被认为是不好的做法吗?我查看了Python的PEP样式指南,但对于这种特定情况却找不到多少。
答案 0 :(得分:4)
如果使用from app import VERSION
而不是import app
,模块和函数之间不会出现名称冲突,因此可以这样做。
答案 1 :(得分:3)
不,这不是坏习惯。这样做非常好,例如,如果你看一下python的内置函数pprint.pprint():
pprint.pprint(对象,流=无,缩进= 1,宽度= 80,深度=无)
在流上打印对象的格式化表示,然后是换行符。如果stream为None,则使用sys.stdout。这可以在交互式解释器中使用,而不是用于检查值的print语句。缩进,宽度和深度将作为格式化参数传递给PrettyPrinter构造函数。
如果python开发者这样做,那么你也可以这样做。一定要避免名字冲突。但总的来说,在这些情况下你不应该遇到问题。
正如SuperbiasedMan所暗示的那样,还有许多其他内置组件可以做到这一点,例如: time.time
和datetime.datetime
。
正如Apero正确指出的那样,我略微误解了你的情况。
作为修复,我会强调我上面已经说过的内容:请务必避免名字冲突。
由于您执行了from app import VERSION
,因此from app
不与您的def app
函数发生冲突,因此这段代码可以正常运行。
我的意见是这是不好的做法,因为如果你出于某种原因并不总是进行特定的导入,而是使用import app
,那么它会发生碰撞和你的代码可以做出意想不到的事情。