ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## django.utils.datastructures 在django.utils下的datastructures文件里,一个用来给支持Django其他常用结构(如request)的文件 ### OrderedSet类 实际上就是利用Python里的OrderedDict类实现的,在构造时将传入的iterable的序列通过元素和None值的键值对构造一个OrderedDict实例,然后实现了一些魔术方法 ~~~ class OrderedSet(object): """ A set which keeps the ordering of the inserted items. Currently backs onto OrderedDict. """ def __init__(self, iterable=None): self.dict = OrderedDict(((x, None) for x in iterable) if iterable else []) def add(self, item): self.dict[item] = None def remove(self, item): del self.dict[item] def discard(self, item): try: self.remove(item) except KeyError: pass def __iter__(self): return iter(self.dict.keys()) def __contains__(self, item): return item in self.dict def __bool__(self): return bool(self.dict) def __nonzero__(self): # Python 2 compatibility return type(self).__bool__(self) def __len__(self): return len(self.dict) ~~~ <br> ## django.db.models.sql.datastructures 这个文件里的数据结构相对都比较简单