【发布时间】:2015-11-28 17:16:00
【问题描述】:
我了解如何根据从网络上挑选的示例创建一个简单的类,但我在尝试访问其中的成员时碰壁了:
假设这是我的课:
class Fruit(object):
def __init__(self, name, color, flavor):
self.name = name
self.color = color
self.flavor = flavor
def description(self):
print('I am a %s %s and my taste is %s and I am %s' % self.color, self.name, self.flavor))
要创建我使用的对象:
lemon = Fruit('lemon', 'yellow', 'sour')
并为我使用的柠檬创建一个新属性:
lemon.peel = 'easy'
我想在类的内部(或外部)定义一个方法,该方法将被称为printall,它将遍历该类的所有现有成员并打印所有这些成员及其属性,即使属性是可变的(比最初定义的更多)。我认为这被称为“重载”
但我不确定正确的术语。
【问题讨论】:
-
您的
Fruit.description()方法有语法错误;在self.color之前缺少一个(。 -
您可以使用
dir(),但我认为在这里使用__get__()和__set__()是有意义的。 -
希望我正确理解了您的问题,但是您是否尝试将所有要迭代的项目放在类内的列表中,然后通过 for 循环遍历列表?编辑:哦,我猜我没有大声笑