python 3.2如何在函数之间传递变量中的数据

2024-10-02 00:27:21 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将r的内容从main存储并传递为两个?如果我把它设为r=something fixed,它将打印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()

Tags: 对象函数fromimport内容maindefrandom
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计算随机值,然后将其返回到调用它的位置。然后可以将返回值存储在变量中(在本例中也称为rr = main())。它不需要被称为r但是,您也可以将其命名为其他名称。

要将值传递给two,可以将其作为参数传递。正如您在def two(r):中看到的,函数two现在需要一个参数(也称为r),并在该函数中使用它。同样,这不需要被称为r,但似乎适合使用相同的名称。

好吧,根据具体情况,您要么创建一个类,要么返回数据,然后将其作为参数传入,在给定代码的情况下,后者可能是您想要的,因此,例如:

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

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

相关问题 更多 >

    热门问题