在小卡片gam中调用对象属性时发生TypeError

2024-09-28 22:41:47 发布

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

我在写纸牌游戏

我创建了一个“card”类和一个包含card对象作为属性的deck类。我成功地完成了洗牌、打印牌组列表、打印牌组中剩余的牌以及制作一个功能正常的“抽牌”系统的功能。 现在,我尝试根据卡的种子为每张卡赋予一个属性(“Briscola”=真/假)(第一张卡由经销商提取,其种子被考虑,然后每一张与被提取种子相匹配的卡的Briscola值都更改为真),但我遇到了两个问题

当我试着跑的时候

prova = Mazzo()
prova.inizio()

“Inzio”方法(应选择一张卡片并进行种子填充)给出以下类型错误:

in inizio
    print('La briscola è', self.semi[brisc.Seme])
TypeError: 'str' object is not callable

以下是我写的:

import random

class Carta:
    semi = ['Bastoni', 'Spade', 'Coppe', 'Denari']
    numeri = ['1', '2', '3', '4', '5', '6', '7', 'Fante', 'Cavallo', 'Re']
    briscola = None
    def __init__(self, Seme = 0, Valore = 0, Briscola = False):
        self.Seme = Seme
        self.Valore = Valore
        self.Briscola = Briscola
    def __str__(self):
        return (self.numeri[self.Valore] + " di " +
                self.semi[self.Seme])
class Mazzo:
    semi = ['Bastoni', 'Spade', 'Coppe', 'Denari']
    numeri = ['1', '2', '3', '4', '5', '6', '7', 'Fante', 'Cavallo', 'Re']

    def __init__(self):
        self.Carte = []
        for seme in range(4):
            for valore in range(10):
                self.Carte.append(Carta(seme,valore))
    def inizio(self):
        brisc = random.choice(self.Carte)
        print = ('-------------La partita è iniziata!-------------')
        print('La carta iniziale è ' , brisc)
        print('La briscola è', self.semi[brisc.Seme])
        for carta in self.Carte:
            if carta.Seme == brisc.Seme:
                carta.Briscola = True
        self.Carte.remove(brisc)

很抱歉,变量名是我的母语。以下是一些翻译,以便更好地理解: carta/e=卡片/s seme/i=种子/s Mazzo=卡片编号i=编号prova=foo


Tags: inselfdef种子laprintsemiprova
1条回答
网友
1楼 · 发布于 2024-09-28 22:41:47
print = ('      -La partita è iniziata!      -')

该行将print()函数重新指定为普通字符串,它不再是函数

因此,下次调用print('something')时,会出现一个错误

想必这是一个打字错误,你不是有意把=放在那里的

相关问题 更多 >