0

我将如何存储并将 r 的内容从 main 传递到两个?如果我将它设置为 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()
4

2 回答 2

2

好吧,根据情况,您要么创建一个类,要么返回数据,然后将其作为参数传递,后者可能是您想要的代码,例如:

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()

但是,在这种情况下,这是不必要的,因为您正在创建一个并没有真正封装任何东西的类。

于 2012-04-06T21:31:01.250 回答
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,但使用相同的名称似乎很合适。

于 2012-04-06T21:31:29.473 回答