Pytest是一个典型的

2024-09-25 08:28:37 发布

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

我对Python很陌生,我正在设置一个小游戏,我想测试一下。 目前,我正在生成一个对象数组(岩石、纸张、剪刀),每个对象都继承自一个Roll对象:

def build_the_three_rolls():
  return [Rock(), Paper(), Scissors()]

这是我的测试py.测试公司名称:

^{pr2}$

但是当我运行它时,我得到了以下错误:

>       assert isinstance(build_the_three_rolls()[1], Paper)
E       assert False
E        +  where False = isinstance(<roll.Paper object at 0x110ab42e8>, Paper)

我不明白为什么失败了

谢谢!在

更新:

以下是Roll及其子类的定义:

class Roll:
def __init__(self, name, defeated_by_self, defeat_self):
    self.name = name
    self.defeated_by_self = defeated_by_self
    self.defeat_self = defeat_self


class Rock(Roll):
    def __init__(self):
        defeated_by_self = {}
        defeated_by_self["Scissors"] = "Scissors"
        defeat_self = {}
        defeat_self["Paper"] = "Paper"
        super().__init__("Rock", defeated_by_self, defeat_self)


class Paper(Roll):
    def __init__(self):
        defeated_by_self = {}
        defeated_by_self["Rock"] = "Rock"
        defeat_self = {}
        defeat_self["Scissors"] = "Scissors"
        super().__init__("Paper", defeated_by_self, defeat_self)


class Scissors(Roll):
    def __init__(self):
        defeated_by_self = {}
        defeated_by_self["Paper"] = "Paper"
        defeat_self = {}
        defeat_self["Rock"] = "Rock"
        super().__init__("Scissors", defeated_by_self, defeat_self)

Tags: 对象namebuildselfbyinitdefclass