【发布时间】:2014-07-29 09:27:15
【问题描述】:
我对 Python 比较陌生,我想知道如何“配置”一个类,使其在打印时返回一个元组。
示例:我有一个具有属性 a、b 和 c 的类:
class Foo:
def __init__(self):
self.a = 3
self.b = 4
self.c = 5
现在我如何“配置”类以通过以下方式访问这些属性:
>>> bar = Foo()
>>> print bar
<foo(3, 4, 5)>
>>> print bar[1]
4
我知道__repr__()和__str__(),但是如果我尝试通过“[]”访问这些号码,则会出现以下错误:
AttributeError: Foo instance has no attribute '__getitem__'
我知道这是有可能的,例如 pygame 库有一个名为 Rect 的对象,它的工作方式与上述方式完全相同。
谢谢!
【问题讨论】:
-
把
__slots__放到你的类中或者从列表/元组继承它 -
@yedpodtrzitko:给你的班级
__slots__对此没有影响,而从列表或元组继承还有其他通常不受欢迎的影响。