在for循环中将对象追加到列表中,仅添加最后一个元素

时间:2020-11-02 16:49:53

标签: stack card

我一直试图制作一堆卡片,这些卡片是使用复杂的for循环生成的对象。 但是发生的是,循环中最后一张卡片的添加次数与循环迭代次数一样多。 ive附加在代码下方,并使用pop和print进行输出以提供更好的主意。将其停留两天

class Card(object):
companyName = ""
companyValue = ""
positive = True
checkpower = True

def printcard(self):
    if self.positive:
        if self.checkpower:
            print(f"{self.companyName}")
        if not self.checkpower:
            print(f"{self.companyName} +{self.companyValue}")
    if not self.positive:
        print(f"{self.companyName} -{self.companyValue}")


    card = Card()
    powerCard = Card()
    cardStack = []
    companyNames = ['Vodafone', 'YesBank', 'Cred', 'TCS', 'Reliance', 'Infosys']
    powerCards = ['RightsIssue', 'ShareSuspend', 'LoanStock', 'Debenture', 'Currency']

    for num in range(6):
        company = companyNames[num]
        for every in range(num+1):
            for sign in range(2):
            if sign == 0:
               card.positive = True
            if sign == 1:
               card.positive = False
            value = (every+1) * 5
            card.companyName = str(company)
            card.companyValue = str(value)
            card.checkpower = False
            cardStack.append(card)
           #card.printcard()
           #card.printcard()
        
for num in cardStack:
    num.printcard()

它给我的输出是: 信息系统-30 信息系统-30 信息系统-30 信息系统-30 信息系统-30 ...(乘以卡数)

并尝试在for循环中打印卡,如您所见,该循环已注释。它们生成时完全不会在此处粘贴,因为它会不必要地冗长

0 个答案:

没有答案