Значение в составе не может сравнивать значения, если - PullRequest
2 голосов
/ 12 марта 2019

Я пытаюсь использовать isinstance, но я получаю ложное возвращение, а не истинное.Мой код ниже:

from CD import CD
from DVD import DVD

class Catalogo(object):

    def __init__(self):
        self.__itens = list()
        self.cd = CD("ti", "te", "ar"," nu", "po", "co")
        self.dvd = DVD("ti", "di", "te", "po", "co")

    def appendItem(self, item):
        self.__itens.append(item)

    def listarItem(self):
        print("CDs\n")
        for i in self.__itens:           
            if isinstance(i, CD):
                print(i,'\n')           
            else:
                print(i + " is not here.")
        print("DVDs\n")
        for i in self.__itens:
            if isinstance(i,DVD):
                print(i,'\n')
#Another file
from catalogo import Catalogo
class main(object):


    ct = Catalogo()


    ct.appendItem(ct.cd.setArtista('Gilberto'))
    ct.appendItem(ct.cd.setArtista('Zeca'))      
    ct.appendItem(ct.dvd.setDiretor('Carlos'))
    ct.listarItem()


if __name__=="__main__":
    main()

Я пытался изменить CD и DVD другими значениями, но код не позволяет мне.Мой вопрос: как я могу сравнить себя и себя .__ itens в for?мой класс CD, DVD, Catalago и main находятся в разных файлах, я не помещаю их сюда, потому что у них просто есть строение.Спасибо ребята !!

1 Ответ

0 голосов
/ 13 марта 2019

Я просто отвечаю на это.

from CD import CD
from DVD import DVD

class Catalogo(object):

    def __init__(self):
        self.__itens = list()


    def appendItem(self, item):
        self.__itens.append(item)

    def listarItem(self):
        print("CDs\n")
        for i in self.__itens:           
            if isinstance(i, CD):
                print(i,'\n')           
            else:
                print(i + " is not here.")
        print("DVDs\n")
        for i in self.__itens:
            if isinstance(i,DVD):
                print(i,'\n')
#Another file
from catalogo import Catalogo
class main(object):


    ct = Catalogo()

    cd = CD("ti ", "te", "ar"," nu", "po", "co")

    ct.appendItem(cd)

    ct.listarItem()


if __name__=="__main__":
    main()

Я просто делаю некоторые ошибки, но я исправляю это, следи за различиями.

...