修改参数的python函数

use*_*455 0 python

def add(a,b):
    for i in range(len(a)):
        a[i] = a[i] + b

def main():
    amounts = [100,200]
    rate = 1
    add(amounts,rate)
    print amounts

main()
Run Code Online (Sandbox Code Playgroud)

函数add没有返回.我读到只有像list这样的可变对象才能进行更改.但为什么这个人省略了回报呢?有或没有回报是好的.为什么?这与C++有很大的不同.

谢谢

Ale*_*lli 7

但为什么这个人省略了回报呢?有或没有回报是好的.为什么?这与C++有很大的不同.

完全没有 - 它与所有意图和目的的C++完全相同!只需在C++版本中创建一个void add并传递它的参数a,比如说std::vector<int>,通过引用 - 所有意图和目的,这就是这个Python add正在做的事情,用C++术语来看.

在Python术语中,当一个函数"落到最后"时,它与在该点执行的函数完全相同return None.在这种情况下(当一个函数总是以"从头到尾"结束时)这是更好的风格,以避免冗余return None语句(不要在这种冗余装饰中浪费像素和屏幕空间).