下面的代码是pylp包中的pyrlp包中的atomic.py。
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。
答案 0 :(得分:2)
Python 2不支持类的metaclass
关键字参数和pyrlp dropped support for Python 2 in April 2018。
改为使用Python 3。
答案 1 :(得分:0)
用于元类的Python 2“语法”是一个神奇的类属性:
class Atomic(object):
__metaclass__ = abc.ABCMeta
abc软件包还具有使用ABCMeta的常规类,该类允许使用继承:
class Atomic(abc.ABC):
pass
请注意,除非要修补该库,否则应改用Python 3。该库不是为Python 2设计的。