Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的问题是关于在python中传递变量的_Python_Function - Fatal编程技术网

我的问题是关于在python中传递变量的

我的问题是关于在python中传递变量的,python,function,Python,Function,我试图改变一些变量(数据帧),并创建了一个简单的例子来说明 首先,我甚至不知道如何更改函数中的变量。函数完成后,a仍然为0 第二,如果我想让函数设置它们的值,我必须在调用函数之前初始化a和b吗?或者我可以在通话中第一次使用它们吗 def set_values(x,y): x,y=6,7 return x,y set_values(0,0) 这将设置a和b的值 a,b = set_values(a,b) 说明:set_values函数返回a和b的更新值,因此将这些返回值分别

我试图改变一些变量(数据帧),并创建了一个简单的例子来说明

首先,我甚至不知道如何更改函数中的变量。函数完成后,a仍然为0

第二,如果我想让函数设置它们的值,我必须在调用函数之前初始化a和b吗?或者我可以在通话中第一次使用它们吗

def set_values(x,y):
    x,y=6,7
    return x,y

set_values(0,0)

这将设置a和b的值

 a,b = set_values(a,b)
说明:set_values函数返回a和b的更新值,因此将这些返回值分别分配给a和b

def set_values(x,y):
    x,y=6,7
    return(x,y)

a,b=0,0
values = set_values(a,b)

print(values)

您正在将值传递给函数。但是您没有将它们存储在任何变量中(从函数返回值)。

首先,您可以正确地从函数返回值,但是如果您希望这些值返回到调用代码中,则必须执行以下操作

a,b = set_values(a,b)
否则返回的值就会被丢弃

对于第二个问题,您不必完全初始化它们,但在调用
set_values()
时引用它们之前,它们必须存在。但您不必传入它们,因为在任何情况下都会覆盖这些值:

def set_values():
    x,y=6,7
    return(x,y)

a, b = set_values()

可以使用函数的返回设置变量,但应使用“=”进行设置,类似于:

a, b = set_values()
函数内部的变量是局部变量,您可以使用在外部设置的变量,使用:

global my_var
然后,如果设置为内部,则可以从外部看到新值。例如:

def my_function():
    global a
    a = "new value"

就像一个好的实践一样,它最好尽量少用,但你可以

您正在从函数setValues返回,但没有将其保存在类似val的value=set_values(a,b)Try
a,b=set_values()
传递变量在Python中不是一件事。您没有传递
a
b
变量,并且无法传递这些变量。您正在传递值
0
0
。如果函数不使用/读取
x
y
,您应该删除这些参数,然后执行
全局a、b;a、 b=6,7
@tobias_k:建议无理由使用
global
不是一个好主意。那么为什么要将
a
b
作为参数传递呢?它们是不相关的a和b是不相关的,检查pythoni中的passby reference,我认为这只是一个例子,如果有人想使用a和b来计算新值,那么你需要在函数中使用a和b。
def my_function():
    global a
    a = "new value"