相关疑难解决方法(0)

5409
推荐指数
22
解决办法
75万
查看次数

有没有办法将__len__或__eq__等方法实现为classmethods?

__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 class

39
推荐指数
2
解决办法
3万
查看次数

是否有专门的方法来获取python"Enum"中的项目数量?

说我有这样一个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模块是否提供这样的功能?

python enums python-3.x

18
推荐指数
2
解决办法
7357
查看次数

标签 统计

python ×3

class ×1

enums ×1

metaclass ×1

oop ×1

python-3.x ×1

python-datamodel ×1