我可以在 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])
我只想学习如何在 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])