问题描述
为了更好地理解,这里是示例代码。
num = 0
def func(num):
num += 1
func(num)
print(num)
此代码显示0,但我想要1(由func()递增),我该怎么做?
我该怎么做?有可能吗?
解决方法
长话短说,您不能只将数字放入函数中并期望它通过引用传递。
在python中...
- (作用类似)按值传递:整数,字符串或元组
- (作用类似)通过引用传递:python列表
您应该访问此处,以获取有关“对象引用传递(调用)”的更多信息。
https://www.geeksforgeeks.org/is-python-call-by-reference-or-call-by-value/
,在python中,当您在函数内部声明变量时,python会将其视为新变量。也就是说,对该变量的任何更改都不会显示在全局上。
要查看他的内容,请在顶部添加global
。
示例:
num = 0
def func():
global num
num += 1
func()
print(num)
输出:
1