Python的type函数结果你知道嘛

作者:三爷带你飞 时间:2023-01-07 11:33:51 

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

isinstance() 与 type() 区别:

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

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

1、标准数据类型。

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

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

4、程序员新增的类,自定义的类型:<class &lsquo;main.XXX&rsquo;>、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)

来源:https://blog.csdn.net/hzblucky1314/article/details/122659446

标签:Python,type,函数
0
投稿

猜你喜欢

  • uni-app自定义导航栏右侧做增加按钮并跳转链接功能

    2024-04-18 10:52:29
  • 如何得到数据库中所有表名 表字段及字段中文描述

    2012-01-05 18:56:44
  • 微信公众平台开发教程(四) 实例入门:机器人回复(附源码)

    2024-04-30 08:46:35
  • python中列表的切片与修改知识点总结

    2023-08-29 00:49:08
  • Flask框架单例模式实现方法详解

    2023-01-24 17:04:55
  • [译]图片优化 第五章:AlphaImageLoader

    2010-08-29 18:39:00
  • mysql 常用命令集锦(Linux/Windows)

    2024-01-17 07:26:20
  • SQL如何使用正则表达式对数据进行过滤

    2024-01-26 23:15:05
  • Windows版mysql 8.0.28 安装配置方法图文教程

    2024-01-16 08:30:17
  • 面试官问订单ID是如何生成的?难道不是MySQL自增主键

    2024-01-24 00:36:24
  • python图像处理模块Pillow的学习详解

    2021-06-03 19:19:03
  • python实现的B站直播录制工具

    2023-05-29 00:51:48
  • ASP所有的Session变量获取实现代码

    2011-03-11 10:44:00
  • 编程活动中几个不良现象

    2008-09-01 12:23:00
  • Python的UTC时间转换讲解

    2023-08-20 03:07:42
  • python多线程http压力测试脚本

    2022-12-31 16:48:37
  • Smush it - 一款图片压缩的Firefox插件,很好,很强大!

    2009-04-12 20:09:00
  • Tensorflow中使用cpu和gpu有什么区别

    2021-10-15 15:48:45
  • Python列表元素常见操作简单示例

    2022-08-18 08:33:57
  • Python使用GitPython操作Git版本库的方法

    2021-04-28 07:22:16
  • asp之家 网络编程 m.aspxhome.com