Python GUI卡程序Str对象不可调用

时间:2018-03-19 22:47:00

标签: python user-interface typeerror

我正在制作一个GUI程序,用于显示GUI中文件的卡片图像。但是,我遇到了类型错误的问题。错误来自:

fileName = "DECK/" + str(self._rank)  + self._suit() + ".gif"

-

class Card(object):
    def __init__(self, rank, suit):
        suit = ['s','h','d','c']
        self._rank = random.randint(1,13)
        self._suit = random.choice(suit)

    def getRank(self):
        return self._rank

    def getSuit(self):
        return self._suit

    def GetCard(self):
        fileName = "DECK/" + str(self._rank)  + self._suit() + ".gif"
        return fileName 

任何帮助都表示对此代码有更多帮助,所以如果看到整个内容会有所帮助,请告诉我。

2 个答案:

答案 0 :(得分:1)

正如西蒙所说,你正在调用函数而不是变量。我还要补充一点,你以小写字母开头定义getCard(为了保持一致性)

def getCard(self):
    fileName = "DECK/" + str(self._rank) + self._suit + ".gif"
    return fileName

答案 1 :(得分:0)

尝试使用:

self._suit

您收到错误,因为self._suit不是函数(您无法调用它)。它是一个可变的,应该这样称呼它。

此外suit = ['s','h','d','c']无效。它应该是:self.suit = ['s','h','d','c']

如果您愿意,可以将其称为函数:

def _suit(self, suit): return random.choice(suit)

你需要用以下方式调用:

_suit(self.suit)