在很多情况下,需要对类型进程动态判断,因为不同的数据类型不能互相做运算并且各自拥有不同的运算逻辑,所有需要判断对象的类型,常用的是type和isinstance,type更过用于获取对象是什么类型构建的,而isinstance可以判断对象是否继承某个类或对象是否是多个类型中的一个。

变量类型判断

  type      只能一次判断一种类型,核心是判断实例对象是由什么类型构建

  isinstance    可以判断一种类型也可以判断多种类型,同时还可以判断继承链

__author_ = "北门吹雪"
__blog__ = "http://www.cnblogs.com/2bjiujiu/"
__email__ = "422083556@qq.com"def check_type(value):"""使用isinstance判断变量单个类型"""# 判断变量单个类型,如果是则返回其类型对应的字符if isinstance(value, int):return "int"elif isinstance(value, float):return "float"elif isinstance(value, bool):return "bool"elif isinstance(value, str):return "str"elif isinstance(value, list):return "list"elif isinstance(value, tuple):return "tuple"elif isinstance(value, set):return "set"elif isinstance(value, dict):return "dict"# 如果都不是则返回不知道else:return "Unknow Type of {value}".format(value=value)def check_object(value):"""使用instance同时判断多个类型"""# 判断变量是否是数字类型if isinstance(value, (int, float, bool)):return "number"# 判断变量是否有序序列elif isinstance(value, (str, list, tuple)):return "Ordered sequence"# 判断变量是否是无序序列elif isinstance(value, (set, dict)):return "Disordered sequence"else:return "Unknow Object of {value}".format(value=value)def use_type(value):"""type只能判断变量单个类型,也可以通过 or来进行折中解决"""if type(value) == int:return "int"elif type(value) == float:return "float"else:return "Unknow Type of {value}".format(value=value)if __name__ == '__main__':print(check_type(10))print(check_type("10"))print(check_object((1, 3, 5)))print(check_object({2, 5, 6}))print(use_type(10))print(use_type((1, 3)))

判断继承链

class Person(object):def __init__(self, skin, language):self.skin = skinself.language = languageclass Student(Person):def __init__(self,skin, language, name, sex, age, phone_number):# 继承使用父类的析构字段super(Student, self).__init__(skin=skin, language=language)self.name = nameself.sex = sexself.age = ageself.phone_number = phone_numberif __name__ == '__main__':beimenchuixue = Student("yellow", "zh-hans", "xiaoMing", "male", 18, "15570911036")# 判断实例xia_ming是否继承于 Persionprint(isinstance(beimenchuixue, Person))print(beimenchuixue.skin)

判断实例对象由什么类型构成

class Class(object):def __init__(self, student_names):self.student_names = student_namesdef __getitem__(self, item):return self.student_names[item]python_class = Class(["QiNiuYun", "BeiMenChuiXue", "AliYun", "BaiDu"])print(type(python_class))
print(type(int))
print(type(object))
print(type(type))

  

  

转载于:https://www.cnblogs.com/2bjiujiu/p/9062139.html

Python-判断变量类型和继承链-type isinstance相关推荐

  1. Python 判断变量类型

    isinstance(参数1,参数2) 描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type() 参数1:变量 参数2:可以是直接或间接类名.基本类型或者由它们组成的元 ...

  2. Python判断变量类型

    两种方法: 一: L = ['a', 'b', 'c'] print(isinstance(L, list)) #输出True 二: L = ['a', 'b', 'c'] print(type(L) ...

  3. JavaScript 变量克隆和判断变量类型

    一.变量克隆 在js中经常会遇到将一个变量赋值给一个新的变量这种情况,这对于基本类型很容易去实现,直接通过等号赋值就可以了,对于引用类型就不能这样了.(注:像函数,正则也可以直接通过等号赋值) 这里我 ...

  4. Python判断变量的类型

    Python判断变量的类型有两种方法:type() 和 isinstance() type() a = ['xxx', 123] if type(a) is list:print('list数组') ...

  5. JS——判断变量类型方法汇总

    判断变量类型 一.使用typeof判断变量类型 二.使用instanceof判断变量的类型 三.使用constructor判断变量的类型 四.使用Object.prototype.toString.c ...

  6. python查看数据类型的方法_pycharm下查看python的变量类型和变量内容的方法

    pycharm下查看python的变量类型和变量内容的方法 用过Matlab的同学基本都知道,程序里面的变量内容可以很方便的查看到,但python确没这么方便,对于做数据处理的很不方便,其实不是没有这 ...

  7. php查询变量类型,php判断变量类型常用方法

    php 判断变量类型常用的函数主要有下列几个: gettype().is_array().is_bool().is_float().is_double().is_integer().is_null() ...

  8. javascript基础之判断变量类型

    判断变量类型 javaSctipt数据类型7种: Number, String, Boolean, Null, Undefined, Object, Symbol typeof操作符 可能返回的值如下 ...

  9. python判断字符类型编程_python判断字符类型怎么做

    设str为字符串 str.isalnum() 所有字符都是数字或字母(推荐学习:Python视频教程) str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 st ...

  10. 聊一聊Python的变量类型判断type和isinstance

    正常情况下不应该编写代码检查类型的,而应该直接假设被操作的instance具有你希望的属性,否则抛出异常. class Parrot:def fly(self):print("Parrot ...

最新文章

  1. 第二次作业— —结对项目
  2. 基于Hadoop的云盘系统客户端技术选型说明
  3. SpringBoot注解自动扫描-底层实现
  4. shell的变量以及常见符号
  5. geek_愚蠢的怪胎技巧:在Windows 7中启用秘密的“ How-To Geek”模式
  6. 2021年中国醋栗果提取物市场趋势报告、技术动态创新及2027年市场预测
  7. nginx:工作原理
  8. Power Apps一个实际案例 -1 - 需求分析
  9. krc 编辑 linux,krc文件怎么打开?krc是什么文件?
  10. ubuntu16.04+VScode+C/C++编译器常用插件
  11. word怎么恢复保存前的文件,word文件恢复
  12. 水果店的售价应该怎么来定,水果店怎样确定价格
  13. pdf合并成一个pdf怎么合并
  14. 苹果手机功能大全介绍_抖音手机软件剪辑推荐及功能介绍
  15. 黑马程序员--C语言自学笔记---07预处理、进制、机器码
  16. python读取文件r_python读入文件时加r的作用?
  17. c语言经典程序100例 九宫格,9X9,九宫格测试,C编程。
  18. 浅谈Redis面试热点之工程架构篇[1]
  19. Linux使用wine完美运行QQ2011(Ubuntu10.10)
  20. HPC帮助工程师在大约两小时内模拟飞机的起飞

热门文章

  1. 理解与学习linux 文件系统的目录结构
  2. Service Worker 全面进阶
  3. linux 修改自动联网的配置说明
  4. Nginx静态资源POST请求返回405状态
  5. IOS开发--仿制网易新闻
  6. Android Screen Orientation
  7. python 将字典转成url参数
  8. [Web 前端] 010 css 常用的边框设置
  9. Python中元组,列表,字典的区别
  10. asp.net登陆数据库的错误解决