__len__(self)在Python中实现方法非常容易,因此它可以处理这样的len(inst)调用:
class A(object):
def __len__(self):
return 7
a = A()
len(a) # gives us 7
Run Code Online (Sandbox Code Playgroud)
而且有很多相似的方法,你可以定义(__eq__,__str__,__repr__等).我知道Python类也是对象.
我的问题:我可以以某种方式定义,例如,__len__以便以下工作:
len(A) # makes sense and gives some predictable result
Run Code Online (Sandbox Code Playgroud) 说我有这样一个python Enum类:
from enum import Enum
class Mood(Enum):
red = 0
green = 1
blue = 2
Run Code Online (Sandbox Code Playgroud)
是否有一种自然的方式来获得物品的总数Mood?(像,而无需遍历它,或添加一个额外的n项,或额外的n classproperty,等等).
enum模块是否提供这样的功能?