python-3.x - 为什么我的课程无法解决该错误
问题描述
类 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'
解决方案
您正在调用您的转移方法,因为它是一个类方法。然而,它是一个实例方法。因此,您必须在实例上调用它。试试这种方式:
a = Deque()
b = words_Deque('mom', a) # save your instance as b
b.transfer(a)
print(a.items)
这会产生正确的输出
m
o
m
['m', 'o', 'm']
推荐阅读
- c# - 通过剪贴板和控制台应用程序更改任何文本框的内容
- c# - 如何在 .NET 5 中安装 Grpc.AspNetCore 的最新依赖项?
- spring-boot - SpringBoot 编辑用户角色列表
- r - 如何将自动导入文件的名称设置为它们在 R 中的文件名?
- rust - 是否有一个宏可以用来期待枚举的变体并提取其数据?
- twig - PHP 可恢复的致命错误:方法 Timber\PostType::__toString() 必须返回字符串值
- python - python请求可能出现死锁
- flutter - Flutter-如何使用谷歌地图沿折线移动标记
- excel - Office 365 中的 VBA 用户定义函数
- javascript - 发送所选选项的简单下拉列表