在Python的类和对象中需要帮助

时间:2018-08-12 23:32:06

标签: python

问题陈述:

将一些值视为:

水果--->             苹果(红色,(3,2),有机),             橘子(橙色,(5,2),非有机)             等等...

我想将父类定义为“水果”,然后在该父类中希望这些对象具有多个定义的值。

然后,如果条件匹配并且创建了Oranges类,我想运行一个仅适用于Oranges类的特定函数。

我对使用Python这样复杂的编程并不陌生。

也欢迎提出建议!

2 个答案:

答案 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"