如何更改全局变量内部功能



我简化了我的问题,使用下面的代码来说明我的问题。

apples = 0
bananas = 0
euro = 10
dollar = 5

def buy(fruit, money):
    fruit += 1
    money -= 1

buy(apples, euro)
print(apples)
print(euro)
buy(bananas, dollar)
print(bananas)
print(dollar)

我希望我的函数更改变量,以使上面代码的输出返回:1,9,,1,4,,但是,它输出了:0,10,0,5,

我无法使用"全球苹果"或"全球水果",因为我希望能够购买一种以上的水果。我也无法使用"返回苹果",因为我想在功能中更改两个不同的变量。

如何编码它,以使变量通过我的函数变化?

您可以更改并返回函数中的两个变量。您可以在下面修改函数。

apples = 0
bananas = 0
euro = 10
dollar = 5
def buy(fruit, money):
    fruit += 1
    money -= 1
    return fruit, money
apples, euro = buy(apples, euro)

功能将返回两个价值观的水果和金钱。它们的值将在返回后分配给全局变量。

由于int不是可变类型,因此您无法按照所需的方式修改全局变量。一个可能的选择是使用词典存储您的全球数据,并将水果和金钱的名称传递给您的功能:

def buy(fruit, money):
    fruits[fruit] += 1
    monies[money] -= 1

fruits = {
    "apples": 0,
    "bananas": 0
}
monies = {
    "euro": 10,
    "dollar": 5
}
buy("apples", "euro")
print(fruits["apples"])
print(monies["euro"])
buy("bananas", "dollar")
print(fruits["bananas"])
print(monies["dollar"])

最新更新