描述

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)相关推荐

  1. Python repr() 函数用法及实例(各种类型转字符串)

    描述 repr() 函数将对象转化为供解释器读取的形式. 语法 以下是 repr() 方法的语法: repr(object) 参数 object -- 对象. 返回值 返回一个对象的 string 格 ...

  2. python vars() 函数用法及实例

    描述 vars() 函数返回对象object的属性和属性值的字典对象. 语法 vars() 函数语法: vars([object]) 参数 object -- 对象 返回值 返回对象object的属性 ...

  3. python3 isinstance用法_python isinstance函数用法详解

    这篇文章主要介绍了python isinstance函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 isinstance() 函数来判断 ...

  4. Python isinstance函数 - Python零基础入门教程

    目录 一. Python isinstance 函数简介 isinstance 函数语法 二.Python isinstance 函数实战 三.猜你喜欢 零基础 Python 学习路线推荐 : Pyt ...

  5. python之函数用法islower()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法islower() #http://www.runoob.com/python/att ...

  6. python之函数用法startswith()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法startswith() #http://www.runoob.com/python/ ...

  7. python之函数用法__getitem__()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法__getitem__() #http://www.cnblogs.com/hongf ...

  8. python之函数用法capitalize()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法capitalize()#capitalize() #说明:将字符串的第一个字母变成大 ...

  9. python之函数用法isupper()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isupper() #http://www.runoob.com/python/att ...

最新文章

  1. JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )(转发)
  2. VI编辑器的操作模式
  3. 合肥学院计算机对口升学2019,15高校招生4340人!2019安徽省对口升学本科招生计划出炉!...
  4. Faster R-CNN 深入理解 改进方法汇总
  5. 蓝图中实现人物移动2
  6. 女人必知 教你认清6种隐性坏男人
  7. 在线拍卖系统代码_来了来了,轻工业领域拍卖的福利来啦!聚拍网终于扩展新范围啦...
  8. 在开源UOJ的导航栏中添加新页面链接
  9. k8s学习:挂载 pvc
  10. pyqt5 登录跳转
  11. EXCEL与数据透视表整理
  12. Hive基础04、Hive建表语句详解
  13. 通达(极限)OA2007SE第二版开源代码,注意哦,是100%开源代码,不是破解的!!!
  14. idea破解失败无法打开
  15. lnmp全面优化集合nginx+mysql+php
  16. ##如何通过写博客赚钱
  17. java微信小程序调用支付接口
  18. {电脑救助站}常用知识3
  19. ubuntu下使用QT编译 No such file or dire解决
  20. 韩国通关号免费查询系统,韩国清关码校验

热门文章

  1. 基因表达热图聚类并增加行列注释
  2. Ps胶片颗粒效果插件:Imagenomic Realgrain for Mac
  3. oncreate为什么一定要调用父类的oncreat_为什么你老是讲不清楚JS的继承模式
  4. STM32中GPIO_Mode--GPIO配置
  5. 计算机专业相关的毕业设计论文合集免费下载
  6. 隐藏的iscroll元素显示后不能滚动问题
  7. Python笔记-房贷计算(本息和本金,每月还利息和每月还本金)及作图对比
  8. Web前端笔记-two.js实现坐标定位(动画效果非瞬移定位)
  9. canvas笔记-clip裁剪函数的使用及探照灯实例
  10. SQL工作笔记-达梦存储过程及时间触发器实现自动生成数据