不明白这个语法错误关于元类



代码下面是pyrlp软件包的atomic.py,它是pyethereum的库。

import abc

class Atomic(metaclass=abc.ABCMeta):
    """ABC for objects that can be RLP encoded as is."""
    pass

Atomic.register(bytes)
Atomic.register(bytearray)

这是控制台的错误信息:

from rlp.atomic import Atomic
  File "/Users/jerryin/Desktop/pyeth/pyrlp/rlp/atomic.py", line 4
    class Atomic(metaclass=abc.ABCMeta):
                          ^
SyntaxError: invalid syntax

我没有修改该项目,因为该项目已被导入。谁能告诉我这怎么了?

加,我用于此项目的口译员是Python 2.7。

python 2不支持metaclass关键字参数到类,而PYRLP在2018年4月删除对Python 2的支持。

改用Python 3。

pip install protobuf==3.17.3通常应解决问题。

元素的python 2"语法"是一个魔术类属性:

class Atomic(object):
    __metaclass__ = abc.ABCMeta

ABC软件包还使用Abcmeta具有常规类,该类允许使用继承:

class Atomic(abc.ABC):
    pass

请注意,除非您想修补库,否则应改用Python 3。该库不是为Python2。

制作的

最新更新