簡體   English   中英

python:object()沒有參數錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM