从集合继承的现代方式

2024-05-18 23:33:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我被教导从dict继承是危险的,但我们应该从collections.UserDict继承。 与set有对称性吗?我想要一个类似集合的类,带有一些实例变量。我在以前的文章中读过关于抽象类的文章。 创建类似集合的对象的现代方法是什么


Tags: 对象实例方法文章抽象类collectionsdictset
2条回答

从技术上讲,您可以将字典作为一个集合使用,只考虑键,并使用伪值(例如None)。通过这种方式,您可以从UserDict继承而不必担心

或者,您可以从typing.MutableSet继承

从set继承的现代方式就是这样做

class MySet(set):
    ...

这并不是说从^{继承遗产是危险的;在Python的早期版本中,它根本不可能。作为一种解决方法,将UserDict类添加到标准库中。它为类提供了一个类似dict的映射接口,但它本身不是dict:相反,它将其数据存储在一个普通的dict

当在Python2.2中引入新样式的类时,对从dict和其他内置类继承的限制被解除。UserDict的文档解释说,该类没有被弃用,因为在某些情况下继续使用包装器更方便,但基本上没有必要

相关问题 更多 >

    热门问题