`

Python对象比较

 
阅读更多

 

class Myobject(object):
    def __init__(self, val):
        self.val = val

    def __eq__(self,other):
        return self.val == other.val

    def __gt__(self,other):
        return self.val > other.val

a = Myobject(1)
c = Myobject(3)
b = Myobject(2)

print(a>b, a==b, a<b)

l = [a, c, b]
for myob in l:
    print(myob.val)

l.sort()
for myob in l:
    print(myob.val)

 

 

# python 2
import functools

@functools.total_ordering
class Myobject(object):
    def __init__(self, val):
        self.val = val

    def __eq__(self,other):
        return self.val == other.val

    def __gt__(self,other):
        return self.val > other.val

a = Myobject(1)
c = Myobject(3)
b = Myobject(2)

print(a>b, a==b, a<b)

l = [a, c, b]
for myobject in l:
    print(myobject.val)

l.sort()
for myobject in l:
    print(myobject.val)

 

 

from collections import namedtuple
from operator import itemgetter

Person=namedtuple("Person",'name age email')

f = Person('wow',3,'234@qq.com')
p = Person('tom',44,'uuu@we.com')
o = Person('mary',10,'tttt@tt.ttt')
o2 = Person('jimi',10,'ffff@tt.ttt')
plist = [f, p, o, o2]

# 以 age 排序
sp = sorted(plist, key=lambda x:x.age)
for p in sp:
    print p
# 多级排序
sp = sorted(plist, key=itemgetter(1,0))
for p in sp:
    print p

 输出

Person(name='wow', age=3, email='234@qq.com')
Person(name='mary', age=10, email='tttt@tt.ttt')
Person(name='jimi', age=10, email='ffff@tt.ttt')
Person(name='tom', age=44, email='uuu@we.com')


Person(name='wow', age=3, email='234@qq.com')
Person(name='jimi', age=10, email='ffff@tt.ttt')
Person(name='mary', age=10, email='tttt@tt.ttt')
Person(name='tom', age=44, email='uuu@we.com')

分享到:
评论

相关推荐

    python对象比较、拷贝、参数传递.zip

    一、Python对象比较 Python中的对象比较主要涉及到对象的相等性(equality)和排序(ordering)。Python支持基本的数据类型如整型、浮点型、字符串等之间的比较,同时也支持自定义类的对象比较。默认情况下,Python...

    python面向对象课件

    面向对象编程(Object-Oriented Programming,简称OOP)是Python编程中的核心概念之一,它是一种编程范式,强调通过创建对象来组织代码,使得程序更易于理解和维护。本课件详细介绍了Python中的面向对象特性,包括类...

    第七章Python对象和类习题及答案--中文

    Python 对象和类习题及答案中文 在本节中,我们将学习 Python 中的对象和类,并通过习题和答案来巩固相关知识点。 定义对象的类 在 Python 中,类是定义对象的模板或蓝图。类是定义相同类型对象的模板,蓝图或...

    Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...

    python面向对象

    在Python中,面向对象编程是其核心特性之一,允许开发者创建复杂、可维护的代码结构。 在Python中,面向对象有三大基本概念:类(Class)、对象(Object)和继承(Inheritance)。首先,类是对象的蓝图,定义了一组...

    Python 3面向对象编程

    Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...

    python对象转json字符串小工具

    JSON与Python对象之间的转换是Python开发中常见的需求。本小工具正是用于将Python对象转化为JSON字符串。 在Python中,`json`模块提供了两个主要函数来实现Python对象到JSON字符串的转换:`dumps()`和`dump()`。`...

    2014年度辛星python面向对象教程

    在Python中,多态性意味着可以对不同类的对象使用相同的方法调用,根据对象的具体类型来执行相应的方法。 在Python中,类的实例化过程是创建对象的过程。类是创建具体实例的蓝图。一个类可以创建多个实例,每个实例...

    python对象转字典的两种实现方式示例

    本文实例讲述了python对象转字典的两种实现方式。分享给大家供大家参考,具体如下: 一. 方便但不完美的__dict__ 对象转字典用到的方法为__dict__. 比如对象对象a的属性a.name=’wk’, a.age=18, 那么如果直接将使用...

    Python3 面向对象编程

    Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...

    Python 面向对象编程

    Python的面向对象编程是其强大的特性之一,它允许开发者通过创建和使用类来构建复杂的软件结构。面向对象编程(OOP)的核心理念是封装、继承和多态,这些概念在Python中得到了很好的实现。 1. **类的定义** 在...

    Python面向对象实现一个对象调用另一个对象操作示例

    本文实例讲述了Python面向对象实现一个对象调用另一个对象操作。分享给大家供大家参考,具体如下: 我先总结一下python中的类的特点: 1.类中所有的方法的参数中都必须加self,并且是第一个参数 2.__init__方法用来...

    Python3面向对象编程

    Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...

    python面向对象下载

    面向对象编程(Object-Oriented Programming, OOP)是Python中的一个重要概念,它允许程序员以更接近人类思维的方式来组织代码,提高代码的可读性和可维护性。 面向对象编程的核心思想是类(Class)和对象(Object...

    Python+3面向对象编程.

    Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...

    Python 面向对象编程指南 new

    在Python的世界里,面向对象编程(Object-Oriented Programming, OOP)是核心编程范式之一,它允许我们将复杂的问题拆解为一系列可复用的对象,极大地提高了代码的可维护性和可扩展性。《Python面向对象编程指南》这...

    Python面向对象编程指南

    Python是一种面向对象、解释型的程序设计语言,它已经被成功应用于科学计算、数据分析以及游戏开发等诸多领域。 Python面向对象编程指南深入介绍Python语言的面向对象特性,全书分3个部分共18章。第1部分讲述用特殊...

    Python实验一 面向对象程序设计实验.doc

    面向对象程序设计是 Python 中的一种重要编程范式,它基于类和对象的概念,强调数据封装、继承和多态性。本实验旨在让学生深入理解和实践面向对象编程的基本原理和技巧。 首先,实验要求学生掌握类的定义。在 ...

Global site tag (gtag.js) - Google Analytics