python判断对象是否是某一类型(Python判断对象是否相等及eq函数的讲解)
类别:脚本大全 浏览量:2882
时间:2022-01-21 00:02:52 python判断对象是否是某一类型
Python判断对象是否相等及eq函数的讲解摘要
- 什么是python对象的标识
- python对象相等的判断
- 自定义python对象相等的条件
python对象的标识
python对象标识就是python对象自身的要素,python对象主要有3要素:
- id:相当于对象在内存中的地址,相当于c的指针,可以用id(对象)来获取。
- 类型:python的基本对象有Number、String、List、Tuple、Set、Dictionary六种,当然还有对象的实例化,他们的类型就是对象的类名。可以通过type(对象)来获取。
- 值:对象的值,不解释- -。
对象相等的判断
python中的对象是否相等有两个层面,一个层面是是否是同一个对象,及在内存中是否共用一个内存区域,用is判断,另一个是对象的值是否相等,用==判断。
我目前用的最多的就是python对象的比较,即比较两个python对象是否相等,看个例子:
|
class student( object ): def __init__( self ,name,age,sex): self .name = name self .age = age self .sex = sex def __eq__( self , * args, * * kwargs): return object .__eq__( self , * args, * * kwargs) like = student( "like" , 25 , "male" ) xue = student( "xue" , 23 , "female" ) dong = student( "like" , 25 , "male" ) print (like is xue) #False print (like is dong) #False print (like = = dong) #False |
这里有两个student类的实例化对象,like和xue很明显是两个不同的对象,他们的不同体现在所占内存地址不同且对象的属性也不同。
like和dong虽然属性相同,但是is和==两种判断的结果也都为false,在实际情况中,我们大多都希望like和dong属性相同,就认为是同一个对象,所以我们需要重写类的eq方法:
|
class student( object ): def __init__( self ,name,age,sex): self .name = name self .age = age self .sex = sex def __eq__( self ,other): return self .__dict__ = = other.__dict__ print (like = = dong) #True |
调用一个对象的dict方法可以用字典的形式输出其属性列表,由于两个对象的属性相同,所以==运算为True。
自定义python对象相等的条件
当然在实际情况下,可以更灵活的定义两个对象相等的条件,比如名字一样就认为相等。
|
class student( object ): def __init__( self ,name,age,sex): self .name = name self .age = age self .sex = sex def __eq__( self ,other): return self .name = = other.name like = student( "like" , 25 , "male" ) dong = student( "like" , 23 , "female" ) print (like = = dong) #True |
实际场景
在实际应用中,有一个场景是处理对象是否在list里,不在就加入。
|
like = student( "like" , 25 , "male" ) dong = student( "like" , 25 , "male" ) list1 = [] list1.append(like) if dong not in list1: list1.append(dong) print ( len (list1)) #1 |
list的in操作就是通过==来判断是否在list中。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/lk7688535/article/details/80975688
您可能感兴趣
- python去除字符串中间的空格(Python去除字符串前后空格的几种方法)
- python生成文本文件(python+os根据文件名自动生成文本)
- python能操作微信定时发消息(python给微信好友定时推送消息的示例)
- python的def命令参数(python ddt数据驱动最简实例代码)
- java集成钉钉发送消息(Python实现钉钉发送报警消息的方法)
- python语言支持多态(Python实现多态、协议和鸭子类型的代码详解)
- python 暗弱目标提取(Python提取频域特征知识点浅析)
- pythonredis使用场景(python redis 删除key脚本的实例)
- python3.8爬虫需要的包(python爬取基于m3u8协议的ts文件并合并)
- python的三维画图(python处理DICOM并计算三维模型体积)
- python定时任务详解(使用Python做定时任务及时了解互联网动态)
- python装饰器使用说明(详解Python装饰器)
- python中mod函数的使用方法(详解Python3中ceil函数用法)
- python的静态方法和类方法(深入解析python中的实例方法、类方法和静态方法)
- python常用的属性和方法(Python进阶之@property动态属性的实现)
- python3正则表达式详解(Python正则表达式和re库知识点总结)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
- 赵丽颖第一部当女主的戏,主角配角个个都是实力演员(赵丽颖第一部当女主的戏)
- 乾隆为何这么喜爱白塔原因是什么(乾隆为何这么喜爱白塔原因是什么)
- 逐渐消失的东北八大怪现象,进步的社会里我们遗失的是什么(逐渐消失的东北八大怪现象)
- 今日大雪,大雪养生这样做,一年都有好气色(大雪养生这样做)
- 粗盐是什么 粗盐的功效与作用(粗盐的功效与作用)
热门推荐
- php制作随机编号(PHP生成随机码的思路与方法实例探索)
- 阿里云虚拟主机如何建(什么是虚拟MFA?阿里云设置虚拟MFA登录让账户更加安全!)
- 阿里云服务器远程密码在哪(教你如何重置阿里云服务器远程连接密码)
- 阿里云服务器总被攻击怎么办(香港云服务器遭遇恶意攻击怎么处理?)
- python标准库操作键盘(Python中捕获键盘的方式详解)
- sqlserver表值函数用法(SQL Server数据库中的表名称、字段比较)
- 微信html隐藏功能(使用Html5多媒体实现微信语音功能)
- python计算1到10的阶乘的和(python计算阶乘和的方法1!+2!+3!+...+n!)
- c# 注册表操作
- phpmysql网站开发入门与提高(PHP+MySQL+sphinx+scws实现全文检索功能详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9