Python 如何将全局变量赋值给函数';她回来了吗?

Python 如何将全局变量赋值给函数';她回来了吗?,python,function,Python,Function,如何将全局变量分配给函数的返回?我似乎能够让它正常工作的唯一方法是将变量赋给函数本身。当我运行代码时,变量赋值在该行执行函数,这不是我想要的。我只需要一个赋值,以便以后可以使用变量 def random_function(): x = 3.14 return x 这是我希望发生但不起作用的事情: pi = x 这可以工作,但在控制台中的该行上运行函数,这不是我想要的: pi = random_function() print(pi) 如果您在一个函数中,但希

如何将全局变量分配给函数的返回?我似乎能够让它正常工作的唯一方法是将变量赋给函数本身。当我运行代码时,变量赋值在该行执行函数,这不是我想要的。我只需要一个赋值,以便以后可以使用变量

def random_function():   
    x = 3.14    
    return x
这是我希望发生但不起作用的事情:

pi = x
这可以工作,但在控制台中的该行上运行函数,这不是我想要的:

pi = random_function() 
print(pi)

如果您在一个函数中,但希望为全局赋值,则必须首先声明全局值。否则,将假定标识符是局部变量。我的意思是:

pi = -1   # declare your global

def random_function():
    global pi
    x = 3.14
    pi = x  # now works, after the `global` line above
    return x

如果我理解正确,您想将函数的返回值赋给变量吗

x = random_function()

我想你就是这样写的。你可以使用任何你想要的变量。

你已经回答了你的问题。要将全局变量分配给函数的返回值,只需将该变量分配给函数的调用

def random_function():   
    x = 3.14    
    return x

pi = random_function()

如果想查看pi的值,可以在控制台中打印pi。不需要。

pi=random\u function()
是一个不错的选择。搜索关键字:“python by pass by reference”以获取更多信息
x
在函数之外不存在
pi=random_function()
正是调用函数并将其返回值赋给变量的方式。不要使用全局变量。将数据作为参数传入,并将数据作为返回值返回。@juanpa.arrivillaga,您的评论说到点子上了。我想使用一个函数的返回值作为另一个函数的参数。这只能通过将第一个函数赋给全局变量来实现吗?@JReinhal what?不,一点也不<代码>a=func1(x,y);func2(a)甚至
func2(func1(x,y))
感谢您的回复。这种格式的问题是,如果函数的返回是一个print语句,那么只需声明全局赋值,就可以在控制台中打印该语句。有什么办法吗?@JReinhal您不能返回语句,只能返回表达式。请用一个示例函数更新您的问题,该函数强调您的澄清要点。@JReinhal如果我理解正确,您的“random_函数”包含一条打印语句。然后将pi分配给这个函数调用,它所做的只是打印。如果我是正确的,我会说你用“return x”替换print语句。我的代码应该可以正常工作。