尽管有很多关于为什么不使用全局变量的线索,通常通过例子来说明,但我还没有找到这个问题的直接答案。所以,以下是我自己对"为什么全球经济不好?"问题的看法:
遵循一段代码(愚蠢但有代表性):
Vegetables = ['avocado', 'asparagus', 'broccoli', ..., 'tomato']
TheVegetablesSurvey = dict.fromkeys(Vegetables, 0)
def vote_for_vegetables():
veg = raw_input("What's your favorite veg?").lower()
if veg in TheVegetablesSurvey:
TheVegetablesSurvey[veg] += 1
print 'Thank you!'
else:
print "Sorry, we don't know this vegetable, try again..."
def show_survey():
print "The results are:"
for veg in sort_by_value(TheVegetablesSurvey) # supposed to exist, irrelevant
print "%-20s, %d"%(veg, TheVegetablesSurvey[veg])
现在,既然全球都很糟糕,那么有什么更好的选择来替代TheVegetablesSurvey?
谢谢!
附言-如果我错过了一个明显相似的线索,请。。。
全局变量不一定是坏的,如果你处理python的范围问题,你可以用一种好的方式使用全局变量。主要是,在您的情况下,python更倾向于将dict作为函数参数传递,因为更明确的是,此函数需要一个增量dict。
在这里你可以做:def vote_for_vegetables(somedict)
。
在某些情况下,如果有五个或六个函数使用相同的参数,则可以将其保持为全局函数,以减少代码的冗长,但在许多其他文件中不需要猜测这些函数,因为您需要设置尽可能多的全局函数。