【发布时间】:2012-02-28 18:14:12
【问题描述】:
考虑一下
# global variable
i_am_global = {}
def get_global():
global i_am_global # declare 1
if i_am_global is not None:
return i_am_global
global i_am_global # declare 2
i_am_global = do_something()
return i_am_global
def main():
get_global()
if __name__ == "__main__":
main()
在这种情况下,我们需要将 global 放在哪里?在 # 声明 1 还是在 # 声明 2?为什么?
这是因为我听说(所以我问这个问题)全局会导致内存开销。请纠正我的理解
谢谢
【问题讨论】:
-
"全局导致内存开销" - 你听错了。 Python 中的
global语句不会造成内存开销。 -
两个地方都试过了,你发现了什么?当你在没有
global声明的情况下尝试它时,你观察到了什么? -
#2 需要它,但 #1 不需要它。看看这个问题:stackoverflow.com/questions/9366212/…
-
那是我需要的链接。谢谢@DanGerhardsson
标签: python