基于另一个类的variab设置类变量

2024-10-01 07:37:14 发布

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

我试图通过在python中创建某种chess克隆来提醒自己OO编程,并发现自己现在的问题。你知道吗

我想给每一块板上的一个'标识符'变量,以便它可以显示在屏幕上,例如:bR将表示一辆黑色的车。然而,我不知道如何建立这一点,因为颜色是一个被继承到rook类的变量,而不是它的一部分。你知道吗

这可能是一个愚蠢的问题,但我也考虑过使用uuu str_uuuuuuu函数来显示,但我也遇到了类似的问题。下面是我的代码。你知道吗

我可以使用另一个\uuu init \uuuu变量,但我不希望必须指定每个pawns标识符(p),因为pawn类肯定可以为我做同样的事情?你知道吗

class piece(object):
    identifier = ' ' 

    def __init__(self, colour):
        self.colour = colour

class rook(piece):

    identifier = 'R'

rookA = rook('b')

我希望实现:

print(rookA.identifier) "bR"

或者

print(rookA) "bR"

如果我做这项工作的方式不对,请提出一个替代方案!你知道吗

谢谢


Tags: brselfpieceinit编程标识符uuuclass
2条回答

通过定义__str__、在piece上定义并返回self.colour + self.identifier来获取所需的值是没有问题的:

def __str__(self):
    return self.colour + self.identifier

现在,当您打印rook的实例时,您将得到想要的结果:

print(rookA)
bR

我不确定您在使用__str__时遇到了什么问题,但这绝对是正确的方法。你知道吗

class Piece(object):
    identifier = ' ' 

    def __init__(self, colour):
        self.colour = colour

    def __str__(self):
        return "{}{}".format(self.colour, self.identifier)

相关问题 更多 >