Python比较协议完整实现

发布时间:2026/5/30 1:52:44

Python比较协议完整实现 Python比较协议完整实现——全六种比较方法与total_ordering自动化Python的比较协议由六个特殊方法组成。正确实现它们可以让自定义对象支持完整的比较操作。from functools import total_ordering# 完整手动实现比较协议 class Vector:二维向量完整实现六种比较方法def __init__(self, x, y):self._x xself._y y# 模长作为比较依据def magnitude(self):计算向量的模长return (self._x ** 2 self._y ** 2) ** 0.5# 小于def __lt__(self, other):实现小于操作符 if not isinstance(other, Vector):return NotImplemented # 返回NotImplemented让Python尝试反向操作return self.magnitude() other.magnitude()# 小于等于def __le__(self, other):实现小于等于操作符 if not isinstance(other, Vector):return NotImplementedreturn self.magnitude() other.magnitude()# 大于def __gt__(self, other):实现大于操作符 if not isinstance(other, Vector):return NotImplementedreturn self.magnitude() other.magnitude()# 大于等于def __ge__(self, other):实现大于等于操作符 if not isinstance(other, Vector):return NotImplementedreturn self.magnitude() other.magnitude()# 等于def __eq__(self, other):实现等于操作符 if not isinstance(other, Vector):return NotImplementedreturn (self._x, self._y) (other._x, other._y)# 不等于def __ne__(self, other):实现不等于操作符 !if not isinstance(other, Vector):return NotImplementedreturn not self.__eq__(other)def __repr__(self):return fVector({self._x}, {self._y})# 演示手动实现的向量比较v1 Vector(1, 2)v2 Vector(3, 1)v3 Vector(1, 2)print(fv1 v2: {v1 v2}) # 调用 __lt__print(fv1 v2: {v1 v2}) # 调用 __gt__print(fv1 v3: {v1 v3}) # 调用 __eq__print(fv1 ! v2: {v1 ! v2}) # 调用 __ne__# 与不同类型比较时返回NotImplemented的效果print(fv1 42: {v1 42}) # 返回NotImplementedPython推断为False# 使用 total_ordering 自动化 total_orderingclass Person:使用total_ordering自动补全比较方法def __init__(self, name, age):self.name nameself.age age# 只需要实现 __eq__ 和一个其他比较方法def __eq__(self, other):判断两人是否同龄if not isinstance(other, Person):return NotImplementedreturn self.age other.agedef __lt__(self, other):按年龄比较if not isinstance(other, Person):return NotImplementedreturn self.age other.agedef __repr__(self):return f{self.name}({self.age}岁)# total_ordering 自动生成__le__, __gt__, __ge__, __ne__# 基于 __eq__ 和 __lt__ 推导# 演示 total_ordering 自动补全p1 Person(Alice, 30)p2 Person(Bob, 25)p3 Person(Charlie, 30)print(fAlice Bob: {p1 p2}) # total_ordering 自动生成print(fBob Charlie: {p2 p3})print(fAlice Charlie: {p1 p3})# 一致比较语义的重要性 class Inconsistent:展示不一致比较导致的问题def __init__(self, val):self.val valdef __eq__(self, other):仅按值比较if isinstance(other, Inconsistent):return self.val other.valreturn NotImplementeddef __lt__(self, other):假设所有实例都可排序但没实现__gt__if isinstance(other, Inconsistent):return self.val other.valreturn NotImplemented# 未实现 __ne__Python 会回退到 __eq__ 取反但可能不符合预期# NotImplemented 的正确使用class Number:支持与int混合比较的数值包装类def __init__(self, val):self.val valdef __eq__(self, other):与int或其他Number比较if isinstance(other, Number):return self.val other.valif isinstance(other, (int, float)):return self.val otherreturn NotImplemented # 未知类型交给对方处理def __lt__(self, other):支持跨类型比较if isinstance(other, Number):return self.val other.valif isinstance(other, (int, float)):return self.val otherreturn NotImplemented# __gt__ 由 total_ordering 生成但需要我们手动标记# 注意返回NotImplemented时Python会尝试 other.__gt__(self)total_orderingclass CompleteNumber(Number):继承Number并使用total_ordering补全passn1 Number(5)print(fNumber(5) 5: {n1 5})print(fNumber(5) 10: {n1 10})tma.bncdbas.cn/791991.Doctma.bncdbas.cn/971711.Doctma.bncdbas.cn/759571.Doctma.bncdbas.cn/939531.Doctma.bncdbas.cn/119771.Doctma.bncdbas.cn/991131.Doctma.bncdbas.cn/513591.Doctma.bncdbas.cn/917351.Doctma.bncdbas.cn/175131.Doctma.bncdbas.cn/957731.Doctmp.bncdbas.cn/775191.Doctmp.bncdbas.cn/979591.Doctmp.bncdbas.cn/311351.Doctmp.bncdbas.cn/153351.Doctmp.bncdbas.cn/177311.Doctmp.bncdbas.cn/173731.Doctmp.bncdbas.cn/379571.Doctmp.bncdbas.cn/733591.Doctmp.bncdbas.cn/555331.Doctmp.bncdbas.cn/931131.Doctmo.bncdbas.cn/535171.Doctmo.bncdbas.cn/777151.Doctmo.bncdbas.cn/155571.Doctmo.bncdbas.cn/991311.Doctmo.bncdbas.cn/599111.Doctmo.bncdbas.cn/517351.Doctmo.bncdbas.cn/337911.Doctmo.bncdbas.cn/935591.Doctmo.bncdbas.cn/355991.Doctmo.bncdbas.cn/137311.Doctmi.bncdbas.cn/595771.Doctmi.bncdbas.cn/115131.Doctmi.bncdbas.cn/917151.Doctmi.bncdbas.cn/133711.Doctmi.bncdbas.cn/315371.Doctmi.bncdbas.cn/111731.Doctmi.bncdbas.cn/599371.Doctmi.bncdbas.cn/177331.Doctmi.bncdbas.cn/939771.Doctmi.bncdbas.cn/577731.Doctmu.bncdbas.cn/975331.Doctmu.bncdbas.cn/359331.Doctmu.bncdbas.cn/117551.Doctmu.bncdbas.cn/133791.Doctmu.bncdbas.cn/793391.Doctmu.bncdbas.cn/399571.Doctmu.bncdbas.cn/537511.Doctmu.bncdbas.cn/777551.Doctmu.bncdbas.cn/313731.Doctmu.bncdbas.cn/153791.Doctmy.bncdbas.cn/371971.Doctmy.bncdbas.cn/559751.Doctmy.bncdbas.cn/355331.Doctmy.bncdbas.cn/739731.Doctmy.bncdbas.cn/739371.Doctmy.bncdbas.cn/731531.Doctmy.bncdbas.cn/317731.Doctmy.bncdbas.cn/999551.Doctmy.bncdbas.cn/951111.Doctmy.bncdbas.cn/379751.Doctmt.bncdbas.cn/597131.Doctmt.bncdbas.cn/135511.Doctmt.bncdbas.cn/379571.Doctmt.bncdbas.cn/117571.Doctmt.bncdbas.cn/531111.Doctmt.bncdbas.cn/199591.Doctmt.bncdbas.cn/115951.Doctmt.bncdbas.cn/537511.Doctmt.bncdbas.cn/351351.Doctmt.bncdbas.cn/359391.Doctmr.bncdbas.cn/755951.Doctmr.bncdbas.cn/153571.Doctmr.bncdbas.cn/993971.Doctmr.bncdbas.cn/397371.Doctmr.bncdbas.cn/399931.Doctmr.bncdbas.cn/395971.Doctmr.bncdbas.cn/395791.Doctmr.bncdbas.cn/737351.Doctmr.bncdbas.cn/175771.Doctmr.bncdbas.cn/155331.Doctme.bncdbas.cn/517731.Doctme.bncdbas.cn/719991.Doctme.bncdbas.cn/577391.Doctme.bncdbas.cn/399171.Doctme.bncdbas.cn/379711.Doctme.bncdbas.cn/393511.Doctme.bncdbas.cn/911311.Doctme.bncdbas.cn/397311.Doctme.bncdbas.cn/775391.Doctme.bncdbas.cn/951191.Doctmw.bncdbas.cn/395991.Doctmw.bncdbas.cn/751991.Doctmw.bncdbas.cn/995131.Doctmw.bncdbas.cn/115971.Doctmw.bncdbas.cn/931931.Doctmw.bncdbas.cn/973331.Doctmw.bncdbas.cn/519931.Doctmw.bncdbas.cn/911511.Doctmw.bncdbas.cn/577511.Doctmw.bncdbas.cn/755391.Doctmq.bncdbas.cn/915311.Doctmq.bncdbas.cn/975311.Doctmq.bncdbas.cn/793151.Doctmq.bncdbas.cn/799951.Doctmq.bncdbas.cn/135371.Doctmq.bncdbas.cn/575971.Doctmq.bncdbas.cn/915591.Doctmq.bncdbas.cn/791731.Doctmq.bncdbas.cn/717591.Doctmq.bncdbas.cn/957731.Doctnm.bncdbas.cn/755111.Doctnm.bncdbas.cn/751951.Doctnm.bncdbas.cn/353191.Doctnm.bncdbas.cn/397911.Doctnm.bncdbas.cn/975711.Doctnm.bncdbas.cn/199751.Doctnm.bncdbas.cn/915931.Doctnm.bncdbas.cn/577171.Doctnm.bncdbas.cn/713171.Doctnm.bncdbas.cn/511191.Doctnn.bncdbas.cn/377751.Doctnn.bncdbas.cn/333991.Doctnn.bncdbas.cn/157731.Doctnn.bncdbas.cn/137791.Doctnn.bncdbas.cn/599551.Doctnn.bncdbas.cn/713771.Doctnn.bncdbas.cn/919331.Doctnn.bncdbas.cn/739371.Doctnn.bncdbas.cn/139591.Doctnn.bncdbas.cn/024861.Doctnb.bncdbas.cn/955311.Doctnb.bncdbas.cn/804041.Doctnb.bncdbas.cn/426441.Doctnb.bncdbas.cn/664001.Doctnb.bncdbas.cn/999991.Doctnb.bncdbas.cn/995571.Doctnb.bncdbas.cn/975391.Doctnb.bncdbas.cn/715991.Doctnb.bncdbas.cn/717571.Doctnb.bncdbas.cn/971991.Doctnv.bncdbas.cn/995311.Doctnv.bncdbas.cn/391331.Doctnv.bncdbas.cn/404081.Doctnv.bncdbas.cn/759191.Doctnv.bncdbas.cn/955591.Doctnv.bncdbas.cn/131931.Doctnv.bncdbas.cn/953331.Doctnv.bncdbas.cn/751131.Doctnv.bncdbas.cn/357971.Doctnv.bncdbas.cn/171991.Doctnc.bncdbas.cn/199711.Doctnc.bncdbas.cn/620441.Doctnc.bncdbas.cn/719391.Doctnc.bncdbas.cn/408641.Doctnc.bncdbas.cn/311351.Doctnc.bncdbas.cn/688001.Doctnc.bncdbas.cn/111711.Doctnc.bncdbas.cn/379311.Doctnc.bncdbas.cn/717531.Doctnc.bncdbas.cn/153371.Doctnx.bncdbas.cn/939991.Doctnx.bncdbas.cn/119331.Doctnx.bncdbas.cn/919171.Doctnx.bncdbas.cn/597351.Doctnx.bncdbas.cn/337151.Doctnx.bncdbas.cn/319591.Doctnx.bncdbas.cn/919931.Doctnx.bncdbas.cn/519791.Doctnx.bncdbas.cn/717391.Doctnx.bncdbas.cn/262061.Doctnz.bncdbas.cn/400881.Doctnz.bncdbas.cn/173111.Doctnz.bncdbas.cn/973951.Doctnz.bncdbas.cn/173791.Doctnz.bncdbas.cn/755371.Doctnz.bncdbas.cn/199551.Doctnz.bncdbas.cn/797591.Doctnz.bncdbas.cn/171351.Doctnz.bncdbas.cn/939171.Doctnz.bncdbas.cn/575551.Doctnl.bncdbas.cn/511391.Doctnl.bncdbas.cn/731511.Doctnl.bncdbas.cn/773571.Doctnl.bncdbas.cn/408661.Doctnl.bncdbas.cn/955731.Doctnl.bncdbas.cn/913911.Doctnl.bncdbas.cn/997511.Doctnl.bncdbas.cn/139111.Doctnl.bncdbas.cn/733791.Doctnl.bncdbas.cn/131731.Doctnk.bncdbas.cn/733111.Doctnk.bncdbas.cn/955711.Doctnk.bncdbas.cn/755351.Doctnk.bncdbas.cn/315391.Doctnk.bncdbas.cn/337171.Doctnk.bncdbas.cn/377311.Doctnk.bncdbas.cn/353151.Doctnk.bncdbas.cn/771791.Doctnk.bncdbas.cn/173311.Doctnk.bncdbas.cn/539371.Doctnj.bncdbas.cn/393131.Doctnj.bncdbas.cn/779911.Doctnj.bncdbas.cn/757111.Doctnj.bncdbas.cn/559771.Doctnj.bncdbas.cn/919931.Doctnj.bncdbas.cn/197311.Doctnj.bncdbas.cn/351571.Doctnj.bncdbas.cn/511371.Doctnj.bncdbas.cn/771591.Doctnj.bncdbas.cn/979111.Doctnh.bncdbas.cn/997591.Doctnh.bncdbas.cn/353571.Doctnh.bncdbas.cn/953771.Doctnh.bncdbas.cn/573371.Doctnh.bncdbas.cn/733751.Doctnh.bncdbas.cn/359731.Doctnh.bncdbas.cn/337931.Doctnh.bncdbas.cn/719791.Doctnh.bncdbas.cn/755371.Doctnh.bncdbas.cn/579111.Doctng.bncdbas.cn/351791.Doctng.bncdbas.cn/51.Doctng.bncdbas.cn/575511.Doctng.bncdbas.cn/351551.Doctng.bncdbas.cn/999971.Doctng.bncdbas.cn/551311.Doctng.bncdbas.cn/397971.Doctng.bncdbas.cn/359171.Doctng.bncdbas.cn/317351.Doctng.bncdbas.cn/393591.Doctnf.bncdbas.cn/937151.Doctnf.bncdbas.cn/591131.Doctnf.bncdbas.cn/919971.Doctnf.bncdbas.cn/155791.Doctnf.bncdbas.cn/151931.Doctnf.bncdbas.cn/175551.Doctnf.bncdbas.cn/153931.Doctnf.bncdbas.cn/197931.Doctnf.bncdbas.cn/179731.Doctnf.bncdbas.cn/171931.Doctnd.bncdbas.cn/377351.Doctnd.bncdbas.cn/971591.Doctnd.bncdbas.cn/957731.Doctnd.bncdbas.cn/775511.Doctnd.bncdbas.cn/551371.Doctnd.bncdbas.cn/577511.Doctnd.bncdbas.cn/511931.Doctnd.bncdbas.cn/448281.Doctnd.bncdbas.cn/777951.Doctnd.bncdbas.cn/119351.Doctns.bncdbas.cn/759751.Doctns.bncdbas.cn/317551.Doctns.bncdbas.cn/711931.Doctns.bncdbas.cn/191571.Doctns.bncdbas.cn/137731.Doctns.bncdbas.cn/137551.Doctns.bncdbas.cn/937311.Doctns.bncdbas.cn/799551.Doctns.bncdbas.cn/933911.Doctns.bncdbas.cn/537971.Doctna.bncdbas.cn/080221.Doctna.bncdbas.cn/555991.Doctna.bncdbas.cn/575131.Doctna.bncdbas.cn/997991.Doctna.bncdbas.cn/620821.Doctna.bncdbas.cn/339191.Doctna.bncdbas.cn/848841.Doctna.bncdbas.cn/422661.Doctna.bncdbas.cn/026841.Doctna.bncdbas.cn/220001.Doctnp.bncdbas.cn/713371.Doctnp.bncdbas.cn/733311.Doctnp.bncdbas.cn/864081.Doctnp.bncdbas.cn/884421.Doctnp.bncdbas.cn/628441.Doctnp.bncdbas.cn/117951.Doctnp.bncdbas.cn/280261.Doctnp.bncdbas.cn/359551.Doctnp.bncdbas.cn/511351.Doctnp.bncdbas.cn/666801.Doctno.bncdbas.cn/406881.Doctno.bncdbas.cn/064401.Doctno.bncdbas.cn/088601.Doctno.bncdbas.cn/379111.Doctno.bncdbas.cn/086641.Doctno.bncdbas.cn/933131.Doctno.bncdbas.cn/511391.Doctno.bncdbas.cn/935591.Doctno.bncdbas.cn/575571.Doctno.bncdbas.cn/351591.Doctni.bncdbas.cn/397331.Doctni.bncdbas.cn/573331.Doctni.bncdbas.cn/753171.Doctni.bncdbas.cn/539751.Doctni.bncdbas.cn/753911.Doctni.bncdbas.cn/373551.Doctni.bncdbas.cn/177711.Doctni.bncdbas.cn/313311.Doctni.bncdbas.cn/793391.Doctni.bncdbas.cn/731771.Doctnu.bncdbas.cn/337371.Doctnu.bncdbas.cn/975131.Doctnu.bncdbas.cn/753731.Doctnu.bncdbas.cn/351331.Doctnu.bncdbas.cn/199131.Doctnu.bncdbas.cn/535331.Doctnu.bncdbas.cn/393351.Doctnu.bncdbas.cn/915571.Doctnu.bncdbas.cn/135751.Doctnu.bncdbas.cn/517191.Doctny.bncdbas.cn/717151.Doctny.bncdbas.cn/171951.Doctny.bncdbas.cn/135311.Doctny.bncdbas.cn/995591.Doctny.bncdbas.cn/157531.Doctny.bncdbas.cn/957971.Doctny.bncdbas.cn/593771.Doctny.bncdbas.cn/399571.Doctny.bncdbas.cn/917351.Doctny.bncdbas.cn/593371.Doctnt.bncdbas.cn/159711.Doctnt.bncdbas.cn/935911.Doctnt.bncdbas.cn/939371.Doctnt.bncdbas.cn/157771.Doctnt.bncdbas.cn/377951.Doctnt.bncdbas.cn/913131.Doctnt.bncdbas.cn/959191.Doctnt.bncdbas.cn/919971.Doctnt.bncdbas.cn/379311.Doctnt.bncdbas.cn/351731.Doctnr.bncdbas.cn/973931.Doctnr.bncdbas.cn/171531.Doctnr.bncdbas.cn/337171.Doctnr.bncdbas.cn/373931.Doctnr.bncdbas.cn/759551.Doctnr.bncdbas.cn/955911.Doctnr.bncdbas.cn/993711.Doctnr.bncdbas.cn/977791.Doctnr.bncdbas.cn/111711.Doctnr.bncdbas.cn/575791.Doctne.bncdbas.cn/391111.Doctne.bncdbas.cn/915971.Doctne.bncdbas.cn/191511.Doctne.bncdbas.cn/931791.Doctne.bncdbas.cn/513571.Doctne.bncdbas.cn/357971.Doctne.bncdbas.cn/131391.Doctne.bncdbas.cn/155791.Doctne.bncdbas.cn/795571.Doctne.bncdbas.cn/995111.Doctnw.bncdbas.cn/775151.Doctnw.bncdbas.cn/157791.Doctnw.bncdbas.cn/735751.Doctnw.bncdbas.cn/115171.Doctnw.bncdbas.cn/571911.Doctnw.bncdbas.cn/993731.Doctnw.bncdbas.cn/397151.Doctnw.bncdbas.cn/397171.Doctnw.bncdbas.cn/531191.Doctnw.bncdbas.cn/573911.Doctnq.bncdbas.cn/199911.Doctnq.bncdbas.cn/331331.Doctnq.bncdbas.cn/379551.Doctnq.bncdbas.cn/393131.Doctnq.bncdbas.cn/375931.Doctnq.bncdbas.cn/531971.Doctnq.bncdbas.cn/337511.Doctnq.bncdbas.cn/599591.Doctnq.bncdbas.cn/975531.Doctnq.bncdbas.cn/977191.Doctbm.bncdbas.cn/739571.Doctbm.bncdbas.cn/977371.Doctbm.bncdbas.cn/113391.Doctbm.bncdbas.cn/915771.Doctbm.bncdbas.cn/731731.Doctbm.bncdbas.cn/377911.Doctbm.bncdbas.cn/951191.Doctbm.bncdbas.cn/193311.Doctbm.bncdbas.cn/191731.Doctbm.bncdbas.cn/937931.Doctbn.bncdbas.cn/317771.Doctbn.bncdbas.cn/171571.Doctbn.bncdbas.cn/359371.Doctbn.bncdbas.cn/375191.Doctbn.bncdbas.cn/995111.Doctbn.bncdbas.cn/511951.Doctbn.bncdbas.cn/959971.Doctbn.bncdbas.cn/799371.Doctbn.bncdbas.cn/599971.Doctbn.bncdbas.cn/335511.Doctbb.bncdbas.cn/553151.Doctbb.bncdbas.cn/755751.Doctbb.bncdbas.cn/779551.Doctbb.bncdbas.cn/193311.Doctbb.bncdbas.cn/753111.Doctbb.bncdbas.cn/393371.Doctbb.bncdbas.cn/571191.Doctbb.bncdbas.cn/915191.Doctbb.bncdbas.cn/799391.Doctbb.bncdbas.cn/719571.Doctbv.bncdbas.cn/935151.Doctbv.bncdbas.cn/913351.Doctbv.bncdbas.cn/733571.Doctbv.bncdbas.cn/519371.Doctbv.bncdbas.cn/175351.Doctbv.bncdbas.cn/171131.Doctbv.bncdbas.cn/173351.Doctbv.bncdbas.cn/371971.Doctbv.bncdbas.cn/353511.Doctbv.bncdbas.cn/715571.Doctbc.bncdbas.cn/577111.Doctbc.bncdbas.cn/337951.Doctbc.bncdbas.cn/315391.Doctbc.bncdbas.cn/579551.Doctbc.bncdbas.cn/775931.Doctbc.bncdbas.cn/999751.Doctbc.bncdbas.cn/399111.Doctbc.bncdbas.cn/979991.Doctbc.bncdbas.cn/997331.Doctbc.bncdbas.cn/137151.Doctbx.bncdbas.cn/157531.Doctbx.bncdbas.cn/979371.Doctbx.bncdbas.cn/733351.Doctbx.bncdbas.cn/333951.Doctbx.bncdbas.cn/751391.Doctbx.bncdbas.cn/719311.Doctbx.bncdbas.cn/753131.Doctbx.bncdbas.cn/357111.Doctbx.bncdbas.cn/537311.Doctbx.bncdbas.cn/959911.Doctbz.bncdbas.cn/511971.Doctbz.bncdbas.cn/319571.Doctbz.bncdbas.cn/191111.Doctbz.bncdbas.cn/391331.Doctbz.bncdbas.cn/111371.Doctbz.bncdbas.cn/779791.Doctbz.bncdbas.cn/991131.Doctbz.bncdbas.cn/113571.Doctbz.bncdbas.cn/713791.Doctbz.bncdbas.cn/119971.Doctbl.bncdbas.cn/717111.Doctbl.bncdbas.cn/313131.Doctbl.bncdbas.cn/131131.Doctbl.bncdbas.cn/931991.Doctbl.bncdbas.cn/717531.Doctbl.bncdbas.cn/195911.Doctbl.bncdbas.cn/799531.Doctbl.bncdbas.cn/599131.Doctbl.bncdbas.cn/553751.Doctbl.bncdbas.cn/995171.Doctbk.bncdbas.cn/991371.Doctbk.bncdbas.cn/597331.Doctbk.bncdbas.cn/397751.Doctbk.bncdbas.cn/517171.Doctbk.bncdbas.cn/797111.Doctbk.bncdbas.cn/199971.Doctbk.bncdbas.cn/959331.Doctbk.bncdbas.cn/377531.Doctbk.bncdbas.cn/931131.Doctbk.bncdbas.cn/779931.Doctbj.bncdbas.cn/931731.Doctbj.bncdbas.cn/771351.Doctbj.bncdbas.cn/991171.Doctbj.bncdbas.cn/195991.Doctbj.bncdbas.cn/737991.Doctbj.bncdbas.cn/935971.Doctbj.bncdbas.cn/379391.Doctbj.bncdbas.cn/331311.Doctbj.bncdbas.cn/593571.Doctbj.bncdbas.cn/515711.Doctbh.bncdbas.cn/771171.Doctbh.bncdbas.cn/335951.Doctbh.bncdbas.cn/751511.Doctbh.bncdbas.cn/593971.Doctbh.bncdbas.cn/377331.Doctbh.bncdbas.cn/715771.Doctbh.bncdbas.cn/357371.Doctbh.bncdbas.cn/113911.Doctbh.bncdbas.cn/135131.Doctbh.bncdbas.cn/155731.Doctbg.bncdbas.cn/713791.Doctbg.bncdbas.cn/777791.Doctbg.bncdbas.cn/731511.Doctbg.bncdbas.cn/595751.Doctbg.bncdbas.cn/197751.Doctbg.bncdbas.cn/531991.Doctbg.bncdbas.cn/511391.Doctbg.bncdbas.cn/951531.Doctbg.bncdbas.cn/975911.Doctbg.bncdbas.cn/319551.Doctbf.bncdbas.cn/755391.Doctbf.bncdbas.cn/559531.Doctbf.bncdbas.cn/115371.Doctbf.bncdbas.cn/119331.Doctbf.bncdbas.cn/931331.Doctbf.bncdbas.cn/151791.Doctbf.bncdbas.cn/991171.Doctbf.bncdbas.cn/757551.Doctbf.bncdbas.cn/199791.Doctbf.bncdbas.cn/715931.Doctbd.bncdbas.cn/733991.Doctbd.bncdbas.cn/171771.Doctbd.bncdbas.cn/319951.Doctbd.bncdbas.cn/573331.Doctbd.bncdbas.cn/339791.Doctbd.bncdbas.cn/393971.Doctbd.bncdbas.cn/395751.Doctbd.bncdbas.cn/573911.Doctbd.bncdbas.cn/939791.Doctbd.bncdbas.cn/999971.Doctbs.bncdbas.cn/973751.Doctbs.bncdbas.cn/931391.Doctbs.bncdbas.cn/731591.Doctbs.bncdbas.cn/911791.Doctbs.bncdbas.cn/753331.Doctbs.bncdbas.cn/266821.Doctbs.bncdbas.cn/519551.Doctbs.bncdbas.cn/957931.Doctbs.bncdbas.cn/357551.Doctbs.bncdbas.cn/151511.Doctba.bncdbas.cn/357751.Doctba.bncdbas.cn/915151.Doctba.bncdbas.cn/539711.Doctba.bncdbas.cn/133531.Doctba.bncdbas.cn/400201.Doctba.bncdbas.cn/937731.Doctba.bncdbas.cn/460461.Doctba.bncdbas.cn/399751.Doctba.bncdbas.cn/820821.Doctba.bncdbas.cn/557391.Doctbp.bncdbas.cn/737971.Doctbp.bncdbas.cn/739711.Doctbp.bncdbas.cn/111951.Doctbp.bncdbas.cn/133951.Doctbp.bncdbas.cn/335571.Doctbp.bncdbas.cn/533751.Doctbp.bncdbas.cn/511791.Doctbp.bncdbas.cn/551551.Doctbp.bncdbas.cn/359991.Doctbp.bncdbas.cn/757711.Doctbo.bncdbas.cn/717731.Doctbo.bncdbas.cn/735771.Doctbo.bncdbas.cn/777771.Doctbo.bncdbas.cn/642601.Doctbo.bncdbas.cn/913711.Doctbo.bncdbas.cn/555931.Doctbo.bncdbas.cn/199151.Doctbo.bncdbas.cn/517711.Doctbo.bncdbas.cn/200061.Doctbo.bncdbas.cn/971171.Doctbi.bncdbas.cn/511951.Doctbi.bncdbas.cn/331571.Doctbi.bncdbas.cn/113971.Doctbi.bncdbas.cn/375751.Doctbi.bncdbas.cn/939351.Doctbi.bncdbas.cn/531571.Doctbi.bncdbas.cn/775571.Doctbi.bncdbas.cn/777571.Doctbi.bncdbas.cn/779551.Doctbi.bncdbas.cn/133951.Doctbu.bncdbas.cn/973511.Doctbu.bncdbas.cn/971731.Doctbu.bncdbas.cn/313971.Doctbu.bncdbas.cn/737131.Doctbu.bncdbas.cn/319971.Doctbu.bncdbas.cn/004041.Doctbu.bncdbas.cn/177711.Doctbu.bncdbas.cn/559731.Doctbu.bncdbas.cn/395331.Doctbu.bncdbas.cn/395571.Doctby.bncdbas.cn/999531.Doctby.bncdbas.cn/286861.Doctby.bncdbas.cn/686681.Doctby.bncdbas.cn/462881.Doctby.bncdbas.cn/355711.Doctby.bncdbas.cn/937111.Doctby.bncdbas.cn/848681.Doctby.bncdbas.cn/426061.Doctby.bncdbas.cn/084261.Doctby.bncdbas.cn/177931.Doctbt.bncdbas.cn/975791.Doctbt.bncdbas.cn/804841.Doctbt.bncdbas.cn/064821.Doctbt.bncdbas.cn/917331.Doctbt.bncdbas.cn/759951.Doctbt.bncdbas.cn/624221.Doctbt.bncdbas.cn/379711.Doctbt.bncdbas.cn/022041.Doctbt.bncdbas.cn/222041.Doctbt.bncdbas.cn/268201.Doctbr.bncdbas.cn/595171.Doctbr.bncdbas.cn/626261.Doctbr.bncdbas.cn/331311.Doctbr.bncdbas.cn/999911.Doctbr.bncdbas.cn/931771.Doctbr.bncdbas.cn/353331.Doctbr.bncdbas.cn/599711.Doctbr.bncdbas.cn/735771.Doctbr.bncdbas.cn/000041.Doctbr.bncdbas.cn/800641.Doctbe.bncdbas.cn/620261.Doctbe.bncdbas.cn/644801.Doctbe.bncdbas.cn/739371.Doctbe.bncdbas.cn/973911.Doctbe.bncdbas.cn/175771.Doctbe.bncdbas.cn/026041.Doctbe.bncdbas.cn/157531.Doctbe.bncdbas.cn/240681.Doctbe.bncdbas.cn/153131.Doctbe.bncdbas.cn/979971.Doctbw.bncdbas.cn/919551.Doctbw.bncdbas.cn/173111.Doctbw.bncdbas.cn/464461.Doctbw.bncdbas.cn/333971.Doctbw.bncdbas.cn/440841.Doctbw.bncdbas.cn/313311.Doctbw.bncdbas.cn/193351.Doctbw.bncdbas.cn/933151.Doctbw.bncdbas.cn/735391.Doctbw.bncdbas.cn/551931.Doctbq.bncdbas.cn/313151.Doctbq.bncdbas.cn/517571.Doctbq.bncdbas.cn/595351.Doctbq.bncdbas.cn/735751.Doctbq.bncdbas.cn/331311.Doctbq.bncdbas.cn/626641.Doctbq.bncdbas.cn/117731.Doctbq.bncdbas.cn/311771.Doctbq.bncdbas.cn/979771.Doctbq.bncdbas.cn/200041.Doctvm.bncdbas.cn/733311.Doctvm.bncdbas.cn/395711.Doctvm.bncdbas.cn/406461.Doctvm.bncdbas.cn/171371.Doctvm.bncdbas.cn/480201.Doctvm.bncdbas.cn/377971.Doctvm.bncdbas.cn/866841.Doctvm.bncdbas.cn/575731.Doctvm.bncdbas.cn/842261.Doctvm.bncdbas.cn/593511.Doctvn.bncdbas.cn/933391.Doctvn.bncdbas.cn/391911.Doctvn.bncdbas.cn/197971.Doctvn.bncdbas.cn/715711.Doctvn.bncdbas.cn/915171.Doctvn.bncdbas.cn/735131.Doctvn.bncdbas.cn/157311.Doctvn.bncdbas.cn/737551.Doctvn.bncdbas.cn/777991.Doctvn.bncdbas.cn/137371.Doctvb.bncdbas.cn/779331.Doctvb.bncdbas.cn/373711.Doctvb.bncdbas.cn/779711.Doctvb.bncdbas.cn/339591.Doctvb.bncdbas.cn/937551.Doctvb.bncdbas.cn/313391.Doctvb.bncdbas.cn/555731.Doctvb.bncdbas.cn/537991.Doctvb.bncdbas.cn/793191.Doctvb.bncdbas.cn/975771.Doctvv.bncdbas.cn/191711.Doctvv.bncdbas.cn/313111.Doctvv.bncdbas.cn/559531.Doctvv.bncdbas.cn/775351.Doctvv.bncdbas.cn/511151.Doctvv.bncdbas.cn/755171.Doctvv.bncdbas.cn/137531.Doctvv.bncdbas.cn/115191.Doctvv.bncdbas.cn/333711.Doctvv.bncdbas.cn/579731.Doctvc.bncdbas.cn/393971.Doctvc.bncdbas.cn/315931.Doctvc.bncdbas.cn/977131.Doctvc.bncdbas.cn/755191.Doctvc.bncdbas.cn/197591.Doctvc.bncdbas.cn/371151.Doctvc.bncdbas.cn/775111.Doctvc.bncdbas.cn/331191.Doctvc.bncdbas.cn/317171.Doctvc.bncdbas.cn/777151.Doctvx.bncdbas.cn/197331.Doctvx.bncdbas.cn/595391.Doctvx.bncdbas.cn/517311.Doctvx.bncdbas.cn/179771.Doctvx.bncdbas.cn/531171.Doctvx.bncdbas.cn/579171.Doctvx.bncdbas.cn/559351.Doctvx.bncdbas.cn/515511.Doctvx.bncdbas.cn/711131.Doctvx.bncdbas.cn/535771.Doctvz.bncdbas.cn/159991.Doctvz.bncdbas.cn/737131.Doctvz.bncdbas.cn/751191.Doctvz.bncdbas.cn/935191.Doctvz.bncdbas.cn/537951.Doctvz.bncdbas.cn/991531.Doctvz.bncdbas.cn/591311.Doctvz.bncdbas.cn/553511.Doctvz.bncdbas.cn/371571.Doctvz.bncdbas.cn/153371.Doctvl.bncdbas.cn/955531.Doctvl.bncdbas.cn/975531.Doctvl.bncdbas.cn/159711.Doctvl.bncdbas.cn/139531.Doctvl.bncdbas.cn/917551.Doctvl.bncdbas.cn/593131.Doctvl.bncdbas.cn/753911.Doctvl.bncdbas.cn/551531.Doctvl.bncdbas.cn/711911.Doctvl.bncdbas.cn/513551.Doctvk.bncdbas.cn/337171.Doctvk.bncdbas.cn/317391.Doctvk.bncdbas.cn/797331.Doctvk.bncdbas.cn/355131.Doctvk.bncdbas.cn/515751.Doctvk.bncdbas.cn/753151.Doctvk.bncdbas.cn/519951.Doctvk.bncdbas.cn/793531.Doctvk.bncdbas.cn/533711.Doctvk.bncdbas.cn/195371.Doctvj.bncdbas.cn/153351.Doctvj.bncdbas.cn/575111.Doctvj.bncdbas.cn/719711.Doctvj.bncdbas.cn/913311.Doctvj.bncdbas.cn/399591.Doctvj.bncdbas.cn/117751.Doctvj.bncdbas.cn/579751.Doctvj.bncdbas.cn/599511.Doctvj.bncdbas.cn/713131.Doctvj.bncdbas.cn/539991.Doctvh.bncdbas.cn/317391.Doctvh.bncdbas.cn/553111.Doctvh.bncdbas.cn/799711.Doctvh.bncdbas.cn/533351.Doctvh.bncdbas.cn/179551.Doctvh.bncdbas.cn/737351.Doctvh.bncdbas.cn/171791.Doctvh.bncdbas.cn/793371.Doctvh.bncdbas.cn/713771.Doctvh.bncdbas.cn/775751.Doctvg.bncdbas.cn/711971.Doctvg.bncdbas.cn/953931.Doctvg.bncdbas.cn/113571.Doctvg.bncdbas.cn/191391.Doctvg.bncdbas.cn/979791.Doctvg.bncdbas.cn/991151.Doctvg.bncdbas.cn/393911.Doctvg.bncdbas.cn/151791.Doctvg.bncdbas.cn/553771.Doctvg.bncdbas.cn/733371.Doctvf.bncdbas.cn/137351.Doctvf.bncdbas.cn/335351.Doctvf.bncdbas.cn/555371.Doctvf.bncdbas.cn/739391.Doctvf.bncdbas.cn/997551.Doctvf.bncdbas.cn/759951.Doctvf.bncdbas.cn/337331.Doctvf.bncdbas.cn/375971.Doctvf.bncdbas.cn/975511.Doctvf.bncdbas.cn/597791.Doctvd.bncdbas.cn/351991.Doctvd.bncdbas.cn/731191.Doctvd.bncdbas.cn/971171.Doctvd.bncdbas.cn/337551.Doctvd.bncdbas.cn/311371.Doctvd.bncdbas.cn/317571.Doctvd.bncdbas.cn/533391.Doctvd.bncdbas.cn/135931.Doctvd.bncdbas.cn/371751.Doctvd.bncdbas.cn/775971.Doctvs.bncdbas.cn/913171.Doctvs.bncdbas.cn/199511.Doctvs.bncdbas.cn/193791.Doctvs.bncdbas.cn/717311.Doctvs.bncdbas.cn/155991.Doctvs.bncdbas.cn/139531.Doctvs.bncdbas.cn/371131.Doctvs.bncdbas.cn/199151.Doctvs.bncdbas.cn/151951.Doctvs.bncdbas.cn/935911.Doctva.bncdbas.cn/599111.Doctva.bncdbas.cn/975371.Doctva.bncdbas.cn/357371.Doctva.bncdbas.cn/317511.Doctva.bncdbas.cn/995971.Doctva.bncdbas.cn/731191.Doctva.bncdbas.cn/195751.Doctva.bncdbas.cn/591551.Doctva.bncdbas.cn/911571.Doctva.bncdbas.cn/151931.Doc

相关新闻