Python的type函数结果你知道嘛

 更新时间:2022年01月24日 14:59:36   作者:三爷带你飞  
这篇文章主要为大家介绍了Python的type函数结果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

简介:type() 函数可以对数据的类型进行判定。

isinstance() 与 type() 区别:

type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。

type函数结果举例,主要有六大类:

1、标准数据类型。

2、module模块类型:主要来源于模块安装并使用

3、type类型:主要来源于标准数据类型的类对象

4、程序员新增的类,自定义的类型:<class ‘main.XXX’>、NoneType

5、builtin_function_or_method 内置函数或者方法

6、其他拓展类型如:collections.Counter、collections.deque等

源码:

import time
import random
import asyncio
import collections
# 基本数据类型
print(type(1))  # <class 'int'>
print(type(3.14))  # <class 'float'>
print(type("hello"))  # <class 'str'>
print(type([1, 2]))  # <class 'list'>
print(type((1, "a")))  # <class 'tuple'>
print(type({"name": "tom"}))  # <class 'dict'>
print(type(False))  # <class 'bool'>
print("*" * 30)
# <class 'module'>
print(type(time))
print(type(random))
print(type(asyncio))
print("*" * 30)
# <class 'type'>
print(type(type))
print(type(int))
print(type(float))
print(type(bool))
print(type(str))
print(type(dict))
print(type(list))
print(type(tuple))
print(type(set))
print("*" * 30)

# 自定义的类型:<class '__main__.XXX'>
class A:
    x = 111
    def __init__(self):
        self.x = 1
    def run(self):
        pass
    @staticmethod
    def say():
        pass
    @classmethod
    def live(cls):
        pass
    @property
    def sleep(self):
        pass

a = A()
print(type(A))  # <class 'type'>
print(type(object))  # <class 'type'>
print(type(a))  # <class '__main__.A'>
# <class 'NoneType'>
print(type(a.__init__()))
print(type(a.run()))
print(type(a.say()))
print(type(a.live()))
print(type(a.sleep))
print(type(A.x))  # <class 'int'> 与初始值类型一致
print(type(a.x))  # <class 'int'> 与初始值类型一致
print("*" * 30)
# <class 'builtin_function_or_method'>
print(type(None))
print(type(bin))
print(type(len))
print(type(min))
print(type(dir))
print("*" * 30)
data = "message"
result = collections.Counter(data)
dict1 = collections.OrderedDict({"name": "Tom", "age": 25, "address": "CN"})
deq1 = collections.deque("abc")
print(type(result))  # <class 'collections.Counter'>
print(type(dict1))  # <class 'collections.OrderedDict'>
print(type(deq1))  # <class 'collections.deque'>

实际应用举例:

1、判定是否是lambda类型

2、判定是否是函数类型

3、判定是否是方法

4、判定生成器类型等

源码:

from types import LambdaType, MethodType, GeneratorType, FunctionType, BuiltinFunctionType
test1 = lambda x: x + 1
# 判定是否是lambda类型。需要注意的是lambda就是函数类型,本质是一样的
print(type(test1) == LambdaType)  # True
# 判定是否是函数类型
print(type(test1) == FunctionType)  # True
# 判定是否是内置函数类型
print(type(bin) == BuiltinFunctionType)  # True

class Test2:
    def run(self):
        pass

test2 = Test2()
# 判定是否是方法
print(type(test2.run) == MethodType)
# 判定生成器类型
a = (x * x for x in range(1, 10))
print(type(a) == GeneratorType)

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Python Sanic框架实现文件上传功能

    Python Sanic框架实现文件上传功能

    Sanic是一个Python 3.5+的异步Web框架,它的设计理念与Flask相似,但采用了更高效的异步I/O处理,在处理文件上传时,Sanic同样提供了方便、高效的方法,本教程将结合实际案例,详细介绍如何在Sanic框架中实现文件上传的功能,需要的朋友可以参考下
    2024-08-08
  • 利用Anaconda简单安装scrapy框架的方法

    利用Anaconda简单安装scrapy框架的方法

    今天小编就为大家分享一篇利用Anaconda简单安装scrapy框架的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • pygame实现弹球游戏

    pygame实现弹球游戏

    这篇文章主要为大家详细介绍了pygame实现弹球游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 解决Pycharm调用Turtle时 窗口一闪而过的问题

    解决Pycharm调用Turtle时 窗口一闪而过的问题

    今天小编就为大家分享一篇解决Pycharm调用Turtle时 窗口一闪而过的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Django如何使用jwt获取用户信息

    Django如何使用jwt获取用户信息

    这篇文章主要介绍了Django如何使用jwt获取用户信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • pandas处理csv文件的方法步骤

    pandas处理csv文件的方法步骤

    这篇文章主要介绍了pandas处理csv文件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Python爬虫之必备chardet库

    Python爬虫之必备chardet库

    这篇文章主要介绍了Python爬虫之必备chardet库,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • python 显示数组全部元素的方法

    python 显示数组全部元素的方法

    下面小编就为大家分享一篇python 显示数组全部元素的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)

    Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)

    matplotlib 是一个用于创建静态、动态和交互式可视化图形的 Python 库,它被广泛用于数据可视化,并且可以与多种操作系统和图形后端一起工作,本文给大家介绍了Python使用matplotlib绘制图形大全,需要的朋友可以参考下
    2024-06-06
  • Python获取指定网段正在使用的IP

    Python获取指定网段正在使用的IP

    这篇文章主要介绍了Python获取指定网段正在使用的IP的示例代码,帮助大家更好的利用python进行测试,感兴趣的朋友可以了解下
    2020-12-12

最新评论