[英]python: object() takes no parameters error
我正在嘗試在python2.7中創建一個enum
類。 我的代碼如下所示:
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
這是我收到的錯誤消息:
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
試試下面的代碼片段
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
您的__new__
有錯別字:
obj.value_ = args[0]
應該
obj._value_ = args[0]
(請注意下划線)
如果確實需要value_
屬性,則需要同時設置兩者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.