2024-05-18 23:33:22 发布
网友
我被教导从dict继承是危险的,但我们应该从collections.UserDict继承。 与set有对称性吗?我想要一个类似集合的类,带有一些实例变量。我在以前的文章中读过关于抽象类的文章。 创建类似集合的对象的现代方法是什么
dict
collections.UserDict
set
从技术上讲,您可以将字典作为一个集合使用,只考虑键,并使用伪值(例如None)。通过这种方式,您可以从UserDict继承而不必担心
None
UserDict
或者,您可以从typing.MutableSet继承
typing.MutableSet
从set继承的现代方式就是这样做
class MySet(set): ...
这并不是说从^{继承遗产是危险的;在Python的早期版本中,它根本不可能。作为一种解决方法,将UserDict类添加到标准库中。它为类提供了一个类似dict的映射接口,但它本身不是dict:相反,它将其数据存储在一个普通的dict中
当在Python2.2中引入新样式的类时,对从dict和其他内置类继承的限制被解除。UserDict的文档解释说,该类没有被弃用,因为在某些情况下继续使用包装器更方便,但基本上没有必要
从技术上讲,您可以将字典作为一个集合使用,只考虑键,并使用伪值(例如
None
)。通过这种方式,您可以从UserDict
继承而不必担心或者,您可以从
typing.MutableSet
继承从set继承的现代方式就是这样做
这并不是说从^{继承遗产是危险的;在Python的早期版本中,它根本不可能。作为一种解决方法,将
UserDict
类添加到标准库中。它为类提供了一个类似dict
的映射接口,但它本身不是dict
:相反,它将其数据存储在一个普通的dict
中当在Python2.2中引入新样式的类时,对从
dict
和其他内置类继承的限制被解除。UserDict
的文档解释说,该类没有被弃用,因为在某些情况下继续使用包装器更方便,但基本上没有必要相关问题 更多 >
编程相关推荐