Python isinstance() 函数用法及实例另类高级使用(附带classmethod 修饰符、json.dumps)
描述
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
语法
以下是 isinstance() 方法的语法:
isinstance(object, classinfo)
参数
- object -- 实例对象。
- classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值
如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。。
实例
以下展示了使用 isinstance 函数的实例:
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
True
type() 与 isinstance()区别:
class A:passclass B(A):passisinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
实例:
classmethod 修饰符:
classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
#!/usr/bin/python
# -*- coding: UTF-8 -*-class A(object):bar = 1def func1(self): print ('foo') @classmethoddef func2(cls):print ('func2')print (cls.bar)cls().func1() # 调用 foo 方法A.func2() # 不需要实例化
json.dumps的参数
import json
from datetime import datetime
import uuiddef json_default(obj):if isinstance(obj, datetime):print "time"return obj.isoformat()elif isinstance(obj, uuid.UUID):print "uuid"return str(obj)else:return None#in_data = "11111"
#in_data = datetime.utcnow()
in_data = uuid.uuid1()data = json.dumps(in_data, default=json_default, ensure_ascii=False)print data
最终源码实例 :
@classmethoddef send_log(cls, type, in_data):data = json.dumps(in_data, default=json_default, ensure_ascii=False)message = '{0} {1}'.format(type, data)with cls.socketLock:cls.socket.send(message)def json_default(obj):if isinstance(obj, datetime):return obj.isoformat()elif isinstance(obj, uuid.UUID):return str(obj)else:return None
Python isinstance() 函数用法及实例另类高级使用(附带classmethod 修饰符、json.dumps)相关推荐
- Python repr() 函数用法及实例(各种类型转字符串)
描述 repr() 函数将对象转化为供解释器读取的形式. 语法 以下是 repr() 方法的语法: repr(object) 参数 object -- 对象. 返回值 返回一个对象的 string 格 ...
- python vars() 函数用法及实例
描述 vars() 函数返回对象object的属性和属性值的字典对象. 语法 vars() 函数语法: vars([object]) 参数 object -- 对象 返回值 返回对象object的属性 ...
- python3 isinstance用法_python isinstance函数用法详解
这篇文章主要介绍了python isinstance函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 isinstance() 函数来判断 ...
- Python isinstance函数 - Python零基础入门教程
目录 一. Python isinstance 函数简介 isinstance 函数语法 二.Python isinstance 函数实战 三.猜你喜欢 零基础 Python 学习路线推荐 : Pyt ...
- python之函数用法islower()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法islower() #http://www.runoob.com/python/att ...
- python之函数用法startswith()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法startswith() #http://www.runoob.com/python/ ...
- python之函数用法__getitem__()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法__getitem__() #http://www.cnblogs.com/hongf ...
- python之函数用法capitalize()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法capitalize()#capitalize() #说明:将字符串的第一个字母变成大 ...
- python之函数用法isupper()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isupper() #http://www.runoob.com/python/att ...
最新文章
- JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )(转发)
- VI编辑器的操作模式
- 合肥学院计算机对口升学2019,15高校招生4340人!2019安徽省对口升学本科招生计划出炉!...
- Faster R-CNN 深入理解 改进方法汇总
- 蓝图中实现人物移动2
- 女人必知 教你认清6种隐性坏男人
- 在线拍卖系统代码_来了来了,轻工业领域拍卖的福利来啦!聚拍网终于扩展新范围啦...
- 在开源UOJ的导航栏中添加新页面链接
- k8s学习:挂载 pvc
- pyqt5 登录跳转
- EXCEL与数据透视表整理
- Hive基础04、Hive建表语句详解
- 通达(极限)OA2007SE第二版开源代码,注意哦,是100%开源代码,不是破解的!!!
- idea破解失败无法打开
- lnmp全面优化集合nginx+mysql+php
- ##如何通过写博客赚钱
- java微信小程序调用支付接口
- {电脑救助站}常用知识3
- ubuntu下使用QT编译 No such file or dire解决
- 韩国通关号免费查询系统,韩国清关码校验
热门文章
- 基因表达热图聚类并增加行列注释
- Ps胶片颗粒效果插件:Imagenomic Realgrain for Mac
- oncreate为什么一定要调用父类的oncreat_为什么你老是讲不清楚JS的继承模式
- STM32中GPIO_Mode--GPIO配置
- 计算机专业相关的毕业设计论文合集免费下载
- 隐藏的iscroll元素显示后不能滚动问题
- Python笔记-房贷计算(本息和本金,每月还利息和每月还本金)及作图对比
- Web前端笔记-two.js实现坐标定位(动画效果非瞬移定位)
- canvas笔记-clip裁剪函数的使用及探照灯实例
- SQL工作笔记-达梦存储过程及时间触发器实现自动生成数据