gpt4 book ai didi

Python 使用全局 vs 指定模块

转载 作者:太空狗 更新时间:2023-10-30 00:51:50 27 4
gpt4 key购买 nike

想知道是否有人对使用 Python 的全局与引用模块本身有任何想法。虽然过去我在需要时使用 global,但我发现使用第二种方法会更清楚一些(并且最近倾向于使用这种语法):

import sys
mod = sys.modules[__name__]

counter = 0

def incrementGlobal():
global counter
counter += 1

def incrementMod():
mod.counter += 1

显然它们都工作得很好,但如果有人有任何强烈的意见(什么是更 pythonic、性能等),我很想听听他们。

顺便说一句,在模块自然地封装了单个类的所有方法和属性的情况下,我最终使用了其中任何一个,而不是引用 incrementmodule.IncrementClass.counter 我可以只使用 incrementmodule.counter。

最佳答案

每次都使用globalglobal 关键字是一种明显且易于识别的模式,用于在模块级别修改某些内容。从 sys.modules 中为模块提供对自身的引用似乎是绕过它的一种不必要的复杂方式,并且可能会使下一个查看它的程序员感到困惑。

关于Python 使用全局 vs 指定模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8679849/

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