• Python 判断变量的类型


    这里有两种方法。type 和isinstance 

    import types
    
    aaa = 0
    print type(aaa)
    if type(aaa) is types.IntType:
        print "the type of aaa is int"
    if isinstance(aaa,int):
        print "the type of aaa is int"
    
    bbb = 'hello'
    print type(bbb)
    if type(bbb) is types.StringType:
        print "the type of bbb is string"
    if isinstance(bbb,str):
        print "the type of bbb is string"
    
    #if the type is NoneType,the isinstance does not work
    #we should judge the NoneType like below
    #if row is None
    #if type(row) is types.NoneType
    
    #In my opinion,use the types to judge the type of a param is convinient<span style="font-family:Arial;background-color: rgb(255, 255, 255);">, use the isinstance to judge whether a instance is a type of a class or not</span>

    一、isinstance()

    在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便。

    复制代码代码如下:

     1 # coding=utf-8
     2  
     3 a = 10
     4  
     5 def b():
     6     pass
     7  
     8 print isinstance(a,(int,str))
     9 print isinstance(a,(float,str))
    10 print isinstance(b,(str,int))
    11  
    12 class c:
    13     pass
    14  
    15 obj = c()
    16  
    17 print isinstance(obj,(c,int))

    执行结果:

    复制代码代码如下:

    1 True
    2 False
    3 False
    4 True

    二、isinstance 和 type的区别

    isinstance 和 type的区别在于:

    复制代码代码如下:
     1 class A:
     2     pass
     3  
     4 
     5 class B(A):
     6     pass
     7 
     8 isinstance(A(), A)  # returns True
     9 type(A()) == A      # returns True
    10 isinstance(B(), A)    # returns True
    11 type(B()) == A        # returns False

    区别就是 对于subclass之类的 type就不行了,所以,强烈建议不要使用type判断对象类型。

  • 相关阅读:
    Java web项目部署之SecureCRT+SecureFX的简单使用
    Ubuntu Linux系统用命令安装MySQL数据库
    Linux中操作tomcat的一些命令
    学习Java第二天
    学Java第一天
    在Windows10下在WSL中使用visual studio code
    Makefile中的变量赋值
    我见过的最好的关于typedef函数指针声明的解说
    C语言中打印格式
    Vim常用小操作【持续更新】
  • 原文地址:https://www.cnblogs.com/cofludy/p/6000930.html
Copyright © 2020-2023  润新知