如何在 Python 中的函数之间共享值?



>我有以下 2 个函数:

a = 20
b = 45
def function1():
coin = np.random.randint(0, 100)
a2= a+coin
return  a2

def function2():
b2= b+coin
return  b2

但是,我在这里的问题如下:我想在function 2中使用随机选择的"coin"值(以function 1确定)。

这里的条件是随机选择必须始终在函数 1 中完成。将此coin值传递给function 2而无需在function 2内部调用function 1的最有效方法是什么?

注意function 1应该只返回一个变量,即a2

编辑后

虽然您可以使用全局变量,但我建议使用类:

class Functions:
def __init__(self, a, b):
self.a = a
self.b = b
self.coin = 0
def function1(self):
self.coin = np.random.randint(0, 100)
a2 = self.a + self.coin
return a2
def function2(self):
b2 = self.b + self.coin
return b2
f = Functions(a=20, b=45)
f.function1()
f.function2()

这两个功能是紧密耦合的。因此,一个类似乎更适合举办它们。理想情况下,函数应该是独立的。另一方面,类的方法应该相互依赖。

旧答案

我建议对函数使用参数。这使它们独立:

def function1(a):
coin = np.random.randint(0, 100)
a2 = a+coin
return a2, coin
def function2(coin):
b2 = b+coin
return  b2
a = 20
b = 45
a2, coin = function1(a)
print(function2(coin))

这一行:

return a2, coin

"返回两个结果"。实际上,它构建了一个中间元组。 还有这一行:

a2, coin = function1(a)

再次将此元组解压缩为变量。

">

最简单的"方法是使硬币成为全局变量。我认为这可能是需要较少更改代码的解决方案:

a = 20
b = 45
coin = 0       # good practice to always initialize vars
def function1():
global coin         # will create and use "coin" from the global scope
coin = np.random.randint(0, 100)
return a+coin
def function2():
b2 = b+coin
return  b2
function1()
function2()

好的,在function1() 中只有一个结果,没有类,也许你可以复古找到硬币?

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from random import randrange
a = 20
b = 45
def function1():
coin = randrange(0, 100)
a2 = a + coin
return a2

def function2(coin):
b2 = b + coin
return b2
coin = function1() - a
f2 = function2(coin)
print("coin: {}".format(coin))
print("f2: {}".format(f2))

相关内容

  • 没有找到相关文章

最新更新