【问题标题】:Queue, stack python [closed]队列,堆栈python
【发布时间】:2014-04-21 02:33:36
【问题描述】:

“您将编写 Python 类 Queue。它将有两个插槽:stack1 和 stack2。您还将编写不带参数并将两个插槽初始化为空堆栈的 maker 函数 mkQueue。”所以,我有这个:,但我不确定它是要求我将参数留空还是将堆栈放入其中?

class Queue():
    __slots__ = ('stack1', 'stack2')

def mkQueue(stack1, stack2):
    Queue.stack1 = stack1
    Queue.stack2 = stack2
    return Queue

【问题讨论】:

  • 忽略 mkQueue() 函数中的单引号
  • 我不知道我是否回答了你的问题,但想想还是很有趣的。

标签: python stack queue


【解决方案1】:

这是朝着正确方向迈出的一步,其中一些 cmets 符合您的任务条款。这不太可能是您需要的完整实现,但它应该可以帮助您入门。

class Queue():
    __slots__ = ('stack1', 'stack2')

    def __init__(self): # You need to define an initialize method
        self.stack1 = []
        self.stack2 = []    

    # staticmethods are the only kinds of class methods that take no arguments
    @staticmethod  
    def mkQueue(): 
        return Queue()

用法:

>>> foo = Queue.mkQueue()
>>> foo.stack1
[]
>>> foo.stack2
[]
>>> foo.stack1 is foo.stack2
False

【讨论】:

  • 我认为你不能在一个类下放置另一个函数?
  • 类通常有不止一个功能。如果它们只有一个功能,通常最好将功能直接放在模块中。当您需要依赖于多个实例中包含的数据的功能时,类变得很重要。
  • 现在我知道了,因为我们的教授还没有告诉我们
猜你喜欢
  • 2021-03-17
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2014-07-21
  • 2015-11-16
  • 2019-03-07
  • 2010-11-20
相关资源
最近更新 更多