[英]python: object() takes no parameters error
I'm trying to create an enum
class in python2.7. 我正在尝试在python2.7中创建一个
enum
类。 My code looks like this: 我的代码如下所示:
from enum import Enum
class Alarms(Enum):
MOTION = "Motion", 0, False
SOUND = "Sound", 1, False
FIRE = "Fire", 2, False
def __new__(cls, *args, **kwds):
obj = object.__new__(cls)
obj.value_ = args[0]
return obj
def __init__(self, name, modbusAddress, isActive):
self.name = name
self.modbusAddress = modbusAddress
self.isActive = isActive
This is the error message I get: 这是我收到的错误消息:
File "/usr/lib/python2.7/dist-packages/enum/__init__.py", line 232, in __new__
enum_member._value_ = member_type(*args)
TypeError: Error when calling the metaclass bases
object() takes no parameters
Try the below snippet 试试下面的代码片段
from enum import Enum
class Alarms(Enum):
MOTION = ("Motion", 0, False)
SOUND = ("Sound", 1, False)
FIRE = ("Fire", 2, False)
def __new__(cls, *args, **kwds):
obj = object.__new__(cls)
obj.value_ = args[0]
return obj
def __init__(self, name, modbusAddress, isActive):
self._name = name
self._modbusAddress = modbusAddress
self._isActive = isActive
You have a typo in your __new__
: 您的
__new__
有错别字:
obj.value_ = args[0]
should be 应该
obj._value_ = args[0]
(notice the leading underscore) (请注意下划线)
If you do want a value_
attribute, then you need to set both. 如果确实需要
value_
属性,则需要同时设置两者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.