zoukankan      html  css  js  c++  java
  • python 内建函数isinstance的用法以及与type的区别

    isinstance是Python中的一个内建函数
    语法:
    isinstance(object, classinfo)
     
    如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。
    如果classinfo不表示一个类(类型对象), 那么它要么是一个类的元组, 或者递归地包含这样的(由数据类型构成的)元组.其他的序列类型是不被允许的。
    如果classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个TypeError异常。

    作用:来判断一个对象是否是一个已知的类型。 

    其第一个参数(object)为对象,第二个参数(type)为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(True or flase)。

    若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。

     
    举例:
    >>> isinstance(1, int)
    True
    >>> isinstance(1.0, float)
    True
     >>> a = 4
    >>> isinstance (a,int)
    True
    >>> isinstance (a,str)
    False
    >>> isinstance (a,(str,int,list))
    True
    >>>isinstance(a,dict)  判断对象a是否为字典,如果为真,会打印True,如为假,打印False。
     

    type()与isinstance()的区别:

    共同点:两者都可以判断对象类型 

    isinstance() 与 type() 区别:

    • type() 不会认为子类是一种父类类型,不考虑继承关系。

    • isinstance() 会认为子类是一种父类类型,考虑继承关系。

    如果要判断两个类型是否相同推荐使用 isinstance()。


    不同点:对于一个 class 类的子类对象类型判断,type就不行了,而 isinstance 可以。

    例如:

    class A:
        pass
    class B(A):
        pass
    
    isinstance(A(), A)  # returns True
    type(A()) == A      # returns True
    
    isinstance(B(), A)    # returns True
    type(B()) == A        # returns False
    • 综上,推荐使用 isinstance 判断对象类型。

      isalpha如果是字母,返回一个非零数;否则返回为0

    isalnum如果是字母或数字,返回一个非零数;否则返回为0

    isdigit如果是数字(0-9)返回一个非零数;否则返回为0   

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    str = "this2009";    # 字符中没有空格
    print str.isalnum();
    str = "this is string example....wow!!!";
    print str.isalnum();

    以上实例输出结果如下:

    True
    False
  • 相关阅读:
    NJU 操作系统实验三
    Oracle数据库的下载安装和配置
    实模式/保护模式
    FAT12
    FAT12 img tool
    Mysql InnoDB 数据更新/删除导致锁表
    程序员,你总要有点自己的想法吧!
    支付系统安全设计思维导图
    从实时清分手续费记账看代码的易读性
    (7/8)借助枚举说一下数据类型定义规范
  • 原文地址:https://www.cnblogs.com/klb561/p/9302078.html
Copyright © 2011-2022 走看看