Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在python中验证ducktyped接口?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<pre><code>class ITestType(object): """ Sample interface type """ __metaclass__ = ABCMeta @abstractmethod def requiredCall(self): return class TestType1(object): """ Valid type? """ def requiredCall(self): pass class TestType2(ITestType): """ Valid type """ def requiredCall(self): pass class TestType3(ITestType): """ Invalid type """ pass </code></pre> <p>在上面的例子中,<code>issubclass(TypeType*, ITestType)</code>对于2将返回true,对于1和3返回false。在</p> <p>有没有其他方法可以使用issubclass,或者有一种接口测试的替代方法,允许1<em>和</em>2通过,但拒绝3?在</p> <p>能够使用duck类型而不是显式地将类绑定到抽象类型,对我来说是非常有帮助的,而且允许在duck类型的对象通过特定接口时进行对象检查。在</p> <p>是的,我知道python的人不喜欢接口,标准的方法是“当它失败时找到它,并将所有东西包装在异常中”,但也与我的问题完全无关。不,我不能简单地不在这个项目中使用接口。在</p> <p>编辑:</p> <p>太好了!对于发现此问题的其他人,下面是如何使用subclasshook的示例:</p> ^{pr2}$
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>{检查^ a1}。您可以定义一个抽象基类,该抽象基类提供一个<code>__subclasshook__</code>方法,该方法根据您喜欢的任何条件(例如“它具有方法X、Y和Z”或其他任何条件)来定义特定类是否是抽象基类的“子类”。然后可以使用<code>issubclass()</code>或<code>isinstance()</code>来检测类和实例上的接口。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
创建一个python程序,从websi中提取文件
10 回答
创建一个python程序,告诉我名字和出生年份的人的年龄
4 回答
创建一个Python程序,它接受一个简短的描述并从给定的集合返回一个解决方案(使用nlp)
1 回答
创建一个python程序,用户在其中输入一个月,它会告诉您y的下一个月
8 回答
创建一个python程序,要求用户输入一个偶数奇数
7 回答
创建一个Python程序来修改名称以digi结尾的目录的文本文件
4 回答
创建一个python程序来猜测用户的“秘密号码”?
6 回答
创建一个python算法来训练keras模型来预测一个大的整数序列
10 回答
创建一个python类,它被视为一个列表,但是有更多的特性?
1 回答
创建一个Python类,我可以将其序列化为一个嵌套的JSON obj
1 回答
创建一个python类来查找直线的斜率和长度
1 回答
创建一个Python网络爬虫来获取谷歌Play商店应用程序的元数据
10 回答
创建一个Python网页
2 回答
创建一个python脚本,不断从excel文件中读取数据并进行计算
9 回答
创建一个python脚本,使用tcpdump计算到达网站的数据包数量?
9 回答
创建一个Python脚本,可以运行其他SAS程序并更新Excel工作簿。
2 回答
创建一个python脚本,它将读取csv文件,并使用该输入从web抓取数据finviz.com网站然后将数据导出到csv fi中
4 回答
创建一个python脚本,用mysql数据库中的结构和数据文件创建一个sql转储
6 回答
创建一个python脚本,该脚本将对某个键进行文本文件搜索,并将编号复制到新文件中
9 回答
创建一个Python脚本,该脚本连接到特定端口(SMTP)上的一系列IP
6 回答