让函数使用在另一个函数中创建的局部变量

时间:2018-09-13 19:11:51

标签: python python-3.x

我正在为我的学校工作做一个项目,遇到了一些麻烦。我试图允许一个函数使用在另一个函数中创建的变量。 到目前为止,这是我简单尝试过的内容:

1)

def randomQuestions(self):
   x = 9*5
   y = 7*4

   return x
   return z

def create_question_widgets(self):
   print(x)
   print(z)

2)

def randomQuestions(self):
   x = 9*5
   z = 7*4

   self.create_question_widgets(self,x,z)

def create_question_widgets(self,x,z):
   print(x)
   print(z)

我是一个新的/错误的编码器,所以请忍受我的错误代码。我也用Google搜索了该怎么做,但并没有太大帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

错误

第一次尝试中的错误是您有两个return语句。一旦函数返回,它将停止。尽管可以将多个值作为tuple返回。

return x, y

第二次尝试中的错误是您不需要提供self作为绑定等距方法的参数。它是隐式传递的。

self.create_question_widgets(x, z)

解决方案

尽管,tt似乎是某些类中的方法。这意味着您可以将xy存储为实例属性。

class Foo:
    def randomQuestions(self):
        self.x = 9 * 5
        self.y = 7 * 4

    def create_question_widgets(self):
        print(self.x)
        print(self.y)

foo = Foo()
foo.randomQuestions()
foo.create_question_widgets()

输出

45
28

答案 1 :(得分:1)

如果您具有x和y实例属性,如下所示:

self.x = 9*5
self.y = 7*4

那么您就不需要return语句(无论如何在一个方法中都不能有两个),而在下一个方法中也是如此:

def create_question_widgets(self):
   print(self.x)
   print(self.z)