Python如何在两个d之间传递变量

2024-05-19 13:09:31 发布

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

我会在函数内部的两个def之间传递一个变量。我该怎么办?我试过使用global,但没用

class example:

 def funz1(self,q,b):
    global queue
    queue = []
    queue += [q]
    queue += [a]

 def funz2(self):
    return str(queue.pop())

但上面说排队是空名单


Tags: 函数selfreturnqueueexampledefpopglobal
2条回答

有几个是用这个代码发出的,首先,没有必要使用全局条,因为你可以访问self。另外,如果列表不为空,pop将引发异常,因此,您可以有以下内容:

class example:    
    def __init__(self):
        self.queue = []

    def funz1(self,q,b):
        self.queue.append(q)
        self.queue.append(b)

    def funz2(self):
        if len(self.queue) > 0:
            return str(self.queue.pop())

除此之外,如果您使用列表作为q,那么您还可以使用collections中的deque,该集合是为该用途而设计的:

^{pr2}$

必须使用self参数,该参数指向example实例本身:

class example:    
 def funz1(self,q,b):
    self.queue = []
    self.queue += [q]
    self.queue += [a]

 def funz2(self):
    return str(self.queue.pop())

阅读更多here。在

另外,作为补充说明,array += [item]是错误的,您应该使用array.append(item)

相关问题 更多 >