问题陈述:
将一些值视为:
水果---> 苹果(红色,(3,2),有机), 橘子(橙色,(5,2),非有机) 等等...
我想将父类定义为“水果”,然后在该父类中希望这些对象具有多个定义的值。
然后,如果条件匹配并且创建了Oranges类,我想运行一个仅适用于Oranges类的特定函数。
我对使用Python这样复杂的编程并不陌生。
也欢迎提出建议!
答案 0 :(得分:0)
您是否需要使用多重继承?
class Fruits(object):
def __init__(self, fruit):
print fruit + "is a fruit"
class Organic(Fruits):
def __init__(self, fruit):
print fruit + "is organic"
super(Organic, self).__init__(fruit)
class Colored(Organic):
def __init__(self, fruit, color):
print fruit + "is " + color
super(Colored, self).__init__(fruit)
class Apple(Colored, Organic):
def __init__(self):
super(Apple, self).__init__("apple", "red")
apple = Apple()
答案 1 :(得分:0)
您的问题确实模棱两可。
您说您希望父类Fruits
包含(em) 类型为Orange
/ Apple
等的对象,但是您也希望说说要根据创建的类而定。
*如果条件匹配... 。 (什么条件??)您没有指定什么条件。根据您提供的内容,我对答案应该是什么进行了解释。
class Fruit(object):
color = None
values = None
nature = None
def __init__(self, color, values, nature):
self.color = color
self.values = values
self.nature = nature
class Orange(Fruit):
color = "Orange"
def __init__(self, values, nature):
super(Orange, self).__init__(self.color, values, nature)
class Apple(Fruit):
color = "Red"
def __init__(self, values, nature):
super(Apple, self).__init__(self.color, values, nature)
# a = Fruit("Green", (3,4), "Organic")
l = []
l.append(Fruit("Green", (3,4), "Organinc"))
l.append(Orange((3,4), "Non Organic"))
l.append(Apple((4,3), "Organic"))
print l
for f in l:
if type(f) is Orange:
print "Found an orange"