Python 这两个函数都是关于演绎的,但是为什么第二个函数对变量num没有影响呢?

Python 这两个函数都是关于演绎的,但是为什么第二个函数对变量num没有影响呢?,python,Python,为什么数字仍然是100?但是通过第一个函数,字典资源中的值都会被扣除这是一个基本的python概念,称为可变对象vs不可变对象。基本上,“resources”变量是一个字典(dict),它是可变对象,“num”变量是一个整数(int),它是不可变对象 我建议你查一下,了解更多关于这个主题的知识。我想我有一个更好的答案,但基本上,这是因为在演绎中,你直接变异了一个对象。在第二个函数中,修改对不可变对象的引用。更改本地编号参考在功能之外没有任何影响。 resources = {"water

为什么数字仍然是100?但是通过第一个函数,字典资源中的值都会被扣除

这是一个基本的python概念,称为可变对象vs不可变对象。基本上,“resources”变量是一个字典(dict),它是可变对象,“num”变量是一个整数(int),它是不可变对象


我建议你查一下,了解更多关于这个主题的知识。

我想我有一个更好的答案,但基本上,这是因为在
演绎中,你直接变异了一个对象。在第二个函数中,修改对不可变对象的引用。更改本地
编号
参考在功能之外没有任何影响。
resources = {"water": 100, "milk": 100}

def deduction(resources):
  resources["water"] -= 50
  resources["milk"] -= 50

deduction(resources)
print(resources)


num = 100

def subtraction(number):
  number -= 50

subtraction(num)

print(num)