我可以在 python 中没有 return 的情况下修改函数中的变量,就像在 C++ 中使用指针一样吗

Can i modify variable in function without return in python like using pointers in c++

我只想学习如何在 python 中编写此 C++ 代码?

#include <iostream>

void modify(int* a){
    *a = 20;
}

int main(){

    int x = 10;
    modify(&x);
    std::cout << x;
    // OUTPUT: 20
    return 0;
}

这不适用于整数,因为 python 中的整数是完全不可变的。您不能更改 python 中的整数。 例如,当您执行 a += 1 时,您创建了一个值为 a + 1 的新 int 并将变量 a 绑定到它。 现在,最简单的方法是使用一些引用类型,例如 class.

class IntRef:
  def __init__(self, a):
    self.a = a

def modify(some):
  some.a = 20

ir = IntRef(10)
modify(ir)
print(ir)

简单的回答是“你不能”。但是,如果您有一个需要等效行为的用例,最简单的方法是将您的变量包装成可变类型。我会做以下事情:

def modify(a):
    a[0] = 20

x = [10]
modify(x)
print(x[0])