 Python 标准库参考指南 3.8.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 1927 页 | 9.69 MB | 9 月前3
 Python 标准库参考指南 3.8.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 1927 页 | 9.69 MB | 9 月前3
 Python 标准库参考指南 3.8.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 22 Chapter 2. 内置函数 The Python Library Reference0 码力 | 2052 页 | 9.74 MB | 9 月前3 Python 标准库参考指南 3.8.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 22 Chapter 2. 内置函数 The Python Library Reference0 码力 | 2052 页 | 9.74 MB | 9 月前3
 Python 标准库参考指南 3.10.15 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建 议实现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 2072 页 | 10.39 MB | 9 月前3 Python 标准库参考指南 3.10.15 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建 议实现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 2072 页 | 10.39 MB | 9 月前3
 Python 标准库参考指南 3.10.15 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建议实 现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 2207 页 | 10.45 MB | 9 月前3 Python 标准库参考指南 3.10.15 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建议实 现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 2207 页 | 10.45 MB | 9 月前3
 Python 标准库参考指南 3.9.20 Python Library Reference, 发布 3.9.20 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建议实 现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 2146 页 | 10.17 MB | 9 月前3 Python 标准库参考指南 3.9.20 Python Library Reference, 发布 3.9.20 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建议实 现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 2146 页 | 10.17 MB | 9 月前3
 Python 标准库参考指南 3.9.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建 议实现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 2015 页 | 10.12 MB | 9 月前3 Python 标准库参考指南 3.9.20 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建 议实现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 是作为显式加点属性查找的绑定过程的一部分来实现的,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样 就能以可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 2015 页 | 10.12 MB | 9 月前3
 Python 标准库参考指南 3.6.15 使用functools.cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的—这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有相同 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 1886 页 | 8.95 MB | 9 月前3 Python 标准库参考指南 3.6.15 使用functools.cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的—这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有相同 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 1886 页 | 8.95 MB | 9 月前3
 Python 标准库参考指南 3.6.15 使用functools.cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的—这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有相同 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 1886 页 | 8.95 MB | 9 月前3 Python 标准库参考指南 3.6.15 使用functools.cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其 为稳定的—这有利于进行多重排序(例如先按部门、再按薪级排序)。 有关排序示例和简要排序教程,请参阅 sortinghowto 。 @staticmethod 将方法转换为静态方法。 静态方法不会接收隐式的第一个参数。要声明一个静态方法,请使用此语法 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的 名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有相同 来 实 现 的, 例 如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法,这样就能以 可预测的顺序搜索类,并且支持协作多重继承。对应地,super() 在像 super()[name] 这样使用语 句或操作符进行隐式查找时则未被定义。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式明确0 码力 | 1886 页 | 8.95 MB | 9 月前3
 Python 标准库参考指南 3.11.10 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建 议实现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 被实现为为显式的带点号属性查找的绑定过程的组成部分,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法以便能够 按支持协作多重继承的可预测的顺序来搜索类。相应地,super() 在像 super()[name] 这样使 用语句或运算符进行隐式查找时则是未定义的。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 2248 页 | 11.10 MB | 9 月前3 Python 标准库参考指南 3.11.10 cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。 内置的sorted() 确保是稳定的。如果一个排序确保不会改变比较结果相等的元素的相对顺序就 称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 排序算法只使用 < 在项目之间比较。虽然定义一个 __lt__() 方法就足以进行排序,但 PEP 8 建 议实现所有六个 富比较。这将有助于避免在与其他排序工具(如max() 有两个典型用例。在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它 们的名称,从而令代码更易维护。这种用法与其他编程语言中 super 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 被实现为为显式的带点号属性查找的绑定过程的组成部分,例如 super(). __getitem__(name)。它做到这一点是通过实现自己的 __getattribute__() 方法以便能够 按支持协作多重继承的可预测的顺序来搜索类。相应地,super() 在像 super()[name] 这样使 用语句或运算符进行隐式查找时则是未定义的。 还要注意的是,除了零个参数的形式以外,super() 并不限于在方法内部使用。两个参数的形式0 码力 | 2248 页 | 11.10 MB | 9 月前3
共 73 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













