首页 > 解决方案 > 为什么我的课程无法解决该错误

问题描述

类 words_Deque 不起作用。我正在尝试使 words_Deque 类可以将单词转移到 Deque 类中。

class Deque:
    def __init__(self):
        self.items = []

    def add_front(self, item):
        self.items.insert(0, item)

    def add_rear(self, item):
        self.items.append(item)

    def remove_front(self):
        if self.items:
            return self.items.pop(0)
        return None

    def remove_rear(self):
        if self.items:
            return self.items.pop()
        return None


class words_Deque:
    def __init__(self, words, deque):
        self.words = words
        self.deque = deque

    def transfer(self, deque):
        for word in self.words:
            print(word)
           deque.add_rear(word)

a = Deque()
words_Deque('mom', a)

words_Deque.transfer(a)

print(a.items)

预期输出:['m','o','m'] 实际结果:transfer() 缺少 1 个必需的位置参数:'deque'

标签: python-3.x

解决方案


您正在调用您的转移方法,因为它是一个类方法。然而,它是一个实例方法。因此,您必须在实例上调用它。试试这种方式:

a = Deque()
b = words_Deque('mom', a)   # save your instance as b

b.transfer(a)

print(a.items)

这会产生正确的输出

m
o
m
['m', 'o', 'm']

推荐阅读