python - 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())
这是我所到之处
解决方案
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'