Python-当通过多个调用累积信息时-是否使用全局变量



尽管有很多关于为什么不使用全局变量的线索,通常通过例子来说明,但我还没有找到这个问题的直接答案。所以,以下是我自己对"为什么全球经济不好?"问题的看法:

遵循一段代码(愚蠢但有代表性):

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)

在某些情况下,如果有五个或六个函数使用相同的参数,则可以将其保持为全局函数,以减少代码的冗长,但在许多其他文件中不需要猜测这些函数,因为您需要设置尽可能多的全局函数。

相关内容

  • 没有找到相关文章