类和方法,包含Python中的列表

时间:2014-03-02 19:13:30

标签: python

我有两个班,名为“Pussa”和“Cat”。 Pussa有一个int属性idPussa,而Cat类有两个属性,一个“Pussa”列表和一个int catNum。每个类都有一些方法,__init__。所以,我要这样做

“(f)现在,我们的猫感染了”Pussa“。将4个Pussa物品放在列表中的所有偶数猫上。 首先生成具有连续数字的20个所需Pussa对象。 然后将Pussa对象的引用复制到相应的猫。“

我已经完成了这段代码,但我真的不知道如何继续......今年我刚刚开始使用Python而且我迷失了。

listPussa = []
for x in range(1,21):
    x = Pussa(x)
    listPussa.append(x)

for cat in cats: #cats is a list of 20 cat objects
    if cat.getcatNum()%2 != 0:
        for i in range(21):
            cat.addPussa(i)
            i = i +1

Pussa课程的定义是:

class Pussa:
    ''' Class Pussa '''
        # (a) Define a private attribute idPussa

        def __init__(self, idPussa = None):
                self.__idPussa = idPussa


        # (b) Define a __str__ method that 
        def __str__(self):
                self.__idPussa = idPussa
                if idPussa is None:
                        return "Pussa sin número."
                else:
                        return "Pussa número = " + idPussa


        # (c) Define setIdPussa
        def setIdPussa(self, idPussa):
                self.__idPussa = idPussa


        # (c) Define getIdPussa
        def getIdPussa(self):
                return self.__idPussa

班级Cat:

class Cat:
    ''' Class cat '''
        # (a) Define the init method with a private attribute called catNum and a list of pusses
        def __init__(self, catNum = None, listPussa = []):
                self.__catNum = catNum
                self.listPussa = listPussa

        # (b) Define the mixeta method  
        def mixeta(self):
                if len(self.listPussa) is 0:
                        return "Miau!", self.getcatNum(), "La llista de pusses esta buida"
                else:
                        for pussa in self.listPussa:
                                return pussa.getIdPussa()

                        return  "Miau!", self.getcatNum(), "El nombre total de pusses es ", len(self.listPussa)



        # (c) Define the setter function for catNum
        def setcatNum(self, catNum):
                self.__catNum = catNum

        # (c) Define the getter function for catNum     
        def getcatNum(self):
                return self.__catNum

        # (d) Define a setter for adding a Pussa in the list of pusses
        def addPussa(self, Pussa):
                self.listPussa.append(Pussa)


        # (e) Define the cleanCat method which removes all pusses from the cat, empty the list
        def cleanCat(self):
                if len(self.listPussa) is 0:
                        return
                else:
                        for i in range(len(self.listPussa)):
                                self.listPussa.pop(i)

每个帮助和评论都非常有用:)

1 个答案:

答案 0 :(得分:3)

可能是这样的吗?

pussaIndex = 0
for cat in cats:
    if cat.getcatNum() % 2 == 0:
        # add the next four elements from `listPussa`
        for i in range(4):
            cat.addPussa(listPussa[pussaIndex])
            pussaIndex += 1