返回局部变量而不将它们设置为全局

时间:2018-10-26 09:49:57

标签: python

我现在正在学习函数,我完全看到了这个概念的用处。

但是它的某些逻辑仍然让我无法理解。

我有一些变量传递给一些本地创建的函数。 我注意到的是,只有被传递的变量会在调用函数时返回并打印出来。

例如,

c是在本地创建的,但可以在外部打印。除非我在函数内部将其全局设置,但我还阅读到应避免这种情况。

我不确定im理解函数是否正确,但是不应该在不全局设置的情况下返回局部函数吗?

a = 345
b = np.array([[1, 2, 3]])
import numpy as np

def return_func(a, b):
#    global a
#    global b
#    global c

    a = ("asd")
    b = np.array([[4, 5, 6], [7, 8, 9]])
    c = 10

    return a, b, c

return_func()    

print (a)
print (b)
print (c)

1 个答案:

答案 0 :(得分:1)

您需要将函数的返回值分配给局部变量:

a, b, c = return_func(a, b)

当然,这里的ab的原始值已更改,因为赋值对其进行了更改。

还要注意函数的名称,这个问题中没有array_return