您将fridge 作为参数传入,因此它将是一个局部变量。要使用全局 fridge,您可以:
FRIDGE = {"cheese": 10, "milk": 11, "feta": 12, "cream": 21, "onion": 32, "pepper": 25}
def fridge_function():
del FRIDGE["feta"]
fridge_function() # you need to call it
print(FRIDGE)
globals 通常是大写的,所以我将变量命名为FRIDGE。
如果您需要将global 语句分配 到全局变量(并且只有这样),则需要添加:
def myfunction():
global MYGLOBAL
MYGLOBAL = 42
但是,使用全局变量和改变全局变量的函数通常不是一个好的解决方案。也许面向对象的东西会更好? (Python 2.7 语法):
class Fridge(dict):
def __init__(self, **contents):
super(Fridge, self).__init__(contents)
def main():
fridge = Fridge(
cheese=10,
milk=11,
feta=12,
cream=21,
onion=32,
pepper=25
)
print fridge
del fridge['feta']
print fridge
if __name__ == "__main__":
main()
输出是
{'cheese': 10, 'pepper': 25, 'feta': 12, 'onion': 32, 'milk': 11, 'cream': 21}
{'cheese': 10, 'pepper': 25, 'onion': 32, 'milk': 11, 'cream': 21}