首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不理解这个关于元类的SyntaxError

我不理解这个关于元类的SyntaxError
EN

Stack Overflow用户
提问于 2019-02-23 15:59:46
回答 2查看 5.2K关注 0票数 1

下面的代码是来自pyrlp包的atomic.py,这是一个pyethereum库。

代码语言:javascript
复制
import abc


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


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

下面是来自控制台的错误信息:

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

自从导入项目以来,我还没有修改过它。有人能告诉我这是怎么回事吗?

另外,我在这个项目中使用的解释器是Python2.7。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-23 16:12:35

Python2不支持类和pyrlp dropped support for Python 2 in April 2018metaclass关键字参数。

请改用Python 3。

票数 2
EN

Stack Overflow用户

发布于 2019-02-23 16:42:28

元类的Python 2“语法”是一个神奇的类属性:

代码语言:javascript
复制
class Atomic(object):
    __metaclass__ = abc.ABCMeta

abc包还有一个使用ABCMeta的常规类,它允许使用继承:

代码语言:javascript
复制
class Atomic(abc.ABC):
    pass

请注意,除非您想对库打补丁,否则应该使用Python 3。该库不是为Python 2创建的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54839478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档