首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口继承声明

接口继承声明
EN

Stack Overflow用户
提问于 2019-02-22 08:30:49
回答 2查看 1.4K关注 0票数 2

我正在尝试使用一个由Github开发人员开发的旧代码。代码使用zope.interface库中的实现来声明类元素上的接口。由于库中的实现在Python3.6中不再工作,所以我遇到了以下错误:

代码语言:javascript
复制
TypeError: Class advice impossible in Python3.  Use the @implementer class decorator instead.

有几个网站解释了如何用@实现者代替实现,以便在Python3.6上工作,比如这里。但是,我还没有找到任何例子来解释如何在zope.interface.implements被用作继承时更新代码。代码如下所示:

代码语言:javascript
复制
from zope.interface import implements
class Car(implements(Moveable)):
     def __init__(self, x, v, lane, model: IDM, lane_change: LaneChange,
             length):
...

我想更新这段代码,以便在Python3.6上工作。我试过了

代码语言:javascript
复制
@implementer(Moveable) 
class Car:
     def __init__(self, x, v, lane, model: IDM, lane_change: LaneChange,
             length):

但不起作用。请帮助我了解如何在Python3.6中运行上述代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-06 17:45:14

以下步骤为我解决了这个问题,

代码语言:javascript
复制
pip uninstall apex
git clone https://www.github.com/nvidia/apex
cd apex
python3 setup.py install
票数 3
EN

Stack Overflow用户

发布于 2019-06-20 12:28:08

要使用实现者而不是Python建议的实现,您需要导入它,而不是导入实现。

代码语言:javascript
复制
from zope.interface import implementer

在您的代码中,它显示您仍然在使用实现,根据提供的信息,这似乎是问题所在。希望能帮上忙。

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

https://stackoverflow.com/questions/54822932

复制
相关文章

相似问题

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