如何存储r并将主要内容传递给两个?如果我将r =固定的话,它将打印r,但是如何将变量内容传递给r。我试过random.getstate / setstate,但它说的是“函数对象不可订阅”。
import random
from random import randrange
def main():
r = random.randrange(1,13,1)
print (r)
r = random.randrange(1,13,1)
def two():
if r==7 or r==11:
print (r)
else:
print (r)
main()
two()
答案 0 :(得分:2)
使用返回值和函数参数:
import random
from random import randrange
def main():
r = random.randrange(1,13,1)
return r
def two(r):
if r==7 or r==11:
print (r)
else:
print (r)
r = main()
two(r)
函数main
计算随机值,然后将其返回到调用它的位置。然后,您可以将返回值存储在变量中(在本例中也称为r
:r = main()
)。它不需要被称为r
,你也可以将它命名为其他东西。
要将值传递给two
,您可以将其作为参数传递。正如您在def two(r):
中所看到的,函数two
现在需要一个参数(也称为r
),并在该函数中使用它。同样,这不需要被称为r
,但似乎适合使用相同的名称。
答案 1 :(得分:1)
那么,根据具体情况,您要么创建一个类或返回数据,然后将其作为参数传递,后者可能是您想要的代码,例如:
def main():
...
r = do_something()
...
return r
def two(r):
...
do_something_else(r)
...
r = main()
two(r)
如果这是在你可以定义为实体的事物中发生的,你可以在一个类中进行:
class Main():
def main(self):
...
self.r = do_something()
...
def two(self):
...
do_something_else(self.r)
...
main = Main()
main.main()
main.two()
但是,在这种情况下,这是不必要的,因为您正在创建一个实际上没有封装任何内容的类。