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++有很大的不同.
谢谢
但为什么这个人省略了回报呢?有或没有回报是好的.为什么?这与C++有很大的不同.
完全没有 - 它与所有意图和目的的C++完全相同!只需在C++版本中创建一个void add并传递它的参数a,比如说std::vector<int>,通过引用 - 所有意图和目的,这就是这个Python add正在做的事情,用C++术语来看.
在Python术语中,当一个函数"落到最后"时,它与在该点执行的函数完全相同return None.在这种情况下(当一个函数总是以"从头到尾"结束时)这是更好的风格,以避免冗余return None语句(不要在这种冗余装饰中浪费像素和屏幕空间).