Python-判断变量类型-type isinstance

变量类型判断

  type      只能一次判断一种类型

  isinstance    可以判断一种类型也可以判断多种类型

__author_ = "北门吹雪"
__blog__ = "http://www.cnblogs.com/2bjiujiu/"
__email__ = "[email protected]"


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)))

  

  

猜你喜欢

转载自www.cnblogs.com/2bjiujiu/p/9062139.html