首页 > 解决方案 > python - 将一个类对象附加到另一个类中

问题描述

我被要求创建一个包含类 Fleur(flower) 和类 Bouquet 的 python 程序,每个花类都包含一个名称和价格以及其他参数,并且花束类包含来自花类的对象,形式为一个列表,我对如何将鲜花添加到花束列表和操作该列表有疑问。谢谢你

class Fleur :
    def __init__(self, name ,couleur, prix _base, parfum_=False, promotion=False):
        self. n=name
        self  .c=couleur
        self. px=prix _base
        self.pa=parfum_
        self.pr=promotion
    def prix(self):
        if self.pr==True:
            return self. px*0.5
        else:
            return self. px
    def parfum(self):
        return self.pa
    def affiche(self):
        if self.pa==True :
            a=self.n,self.c,'parfumée , prix:', self  .prix(),'MAD'
            print(a)
        else:
            a=self .n ,self .c,', prix:', self .prix(),'MAD'
            print(a)
    @staticmethod
    def equal(A,B):
        if A. n==B .n and A. c==B .c and A.pa==B.pa:
            return True 
        else:
            return False 
class Bouquet:
    def __init__(self):
        self .bouquet=[]
    def ajouter(self, f):
        self .bouquet. append(f. affiche())

这是我所到之处

标签: pythonclass

解决方案


ajouter在该类的方法中,Bouquet您似乎正在附加f.affiche()affiche()不返回任何内容。方法 affiche 打印输出 a 所以它返回的值是None。如果您希望能够为给定的 f 附加 affiche 的输出,则需要在 affiche 中返回 a,或者只返回设置为 a 的值。

代码可能看起来像这样。

    def affiche(self):
        if self.pa == True:
            return self.n, self.c,'parfumée , prix:', self.prix(), 'MAD'
        else:
            return self.n, self.c, ', prix:', self.prix(), 'MAD'

推荐阅读