python0赋值器返回none,不管值是多少

python0赋值器返回none,不管值是多少,python,python-3.x,function,return-value,Python,Python 3.x,Function,Return Value,我在python中遇到了一个问题(关于VS代码的python 3.9)。我试图通过以下条件更改字典中的值: def getset(age): age['age']+=0 if age['age']>=0 else age['age'] == 0 mammad = {'name': 'mammad', 'age': -3} mammad = getset(mammad) print(mammad) 正如您在age['age']+=0中看到的,如果age['age']>=0,则age

我在python中遇到了一个问题(关于VS代码的python 3.9)。我试图通过以下条件更改字典中的值:

def getset(age):
    age['age']+=0 if age['age']>=0 else age['age'] == 0
mammad = {'name': 'mammad', 'age': -3}
mammad = getset(mammad)
print(mammad)

正如您在
age['age']+=0中看到的,如果age['age']>=0,则age['age']==0
age键的值必须为0,如果它小于0。但无论如何,它会将其更改为“无”。有什么问题吗?

您需要
在对
dict
进行更改后返回
dict
(在函数调用中赋值
,当它不返回任何内容时),或者只调用函数而不将其赋值给变量,因为它将修改
dict
。您可以按如下方式更改词典:

def getset(age):
    age['age'] = 0 if age['age'] < 0 else age['age']

mammad = {'name': 'mammad', 'age': -3}
# no need to 'assign' to 'mammad' again, you changed it already!
getset(mammad)
>>> print(mammad)
{'name': 'mammad', 'age': 0}

你应该返回年龄。如果不返回任何内容,则将为“无”。

您的函数不返回任何内容,它会在适当的位置修改dict。如果age['age']>=0,则
0究竟是什么?它似乎总是计算为
0
False
>>> def f():
...     pass
... 
>>> print(f())
None