# 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()
在這種情況下我們在哪裏需要把全球
?在#聲明1或在#聲明2?爲什麼?
這是因爲我聽說(所以我問這個問題)全局導致內存開銷。請糾正我的理解
謝謝
「*全局導致內存開銷*」 - 您聽錯了。 Python中的'global'語句不會導致內存開銷。 – 2012-02-28 18:16:43
當你嘗試了兩個地方時,你觀察到了什麼?當你在沒有'全球'聲明的情況下嘗試它時,你觀察到了什麼? – 2012-02-28 18:18:02
需要在#2而不是在#1。看看這個問題:http://stackoverflow.com/questions/9366212/correct-use-of-global-variables-in-python-3 – 2012-02-28 18:18:17