Python的type函数结果你知道嘛
目录
- isinstance() 与 type() 区别:
- type函数结果举例,主要有六大类:
- 总结
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。isinstance() 会认为子类是一种父类类型,考虑继承关系。如果要判断两个类型是否相同推荐使用 isinstance()。
type函数结果举例,主要有六大类: 1、标准数据类型。
2、module模块类型:主要来源于模块安装并使用
3、type类型:主要来源于标准数据类型的类对象
4、程序员新增的类,自定义的类型:
5、builtin_function_or_method 内置函数或者方法
6、其他拓展类型如:collections.Counter、collections.deque等
源码:
import timeimport randomimport asyncioimport collections# 基本数据类型print(type(1))#print(type(3.14))# print(type("hello"))# print(type([1, 2]))# print(type((1, "a")))# print(type({"name": "tom"}))# print(type(False))# print("*" * 30)# print(type(time))print(type(random))print(type(asyncio))print("*" * 30)# 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 A:x = 111def __init__(self):self.x = 1def run(self):pass@staticmethoddef say():pass@classmethoddef live(cls):pass@propertydef sleep(self):passa = A()print(type(A))# print(type(object))# print(type(a))# # print(type(a.__init__()))print(type(a.run()))print(type(a.say()))print(type(a.live()))print(type(a.sleep))print(type(A.x))# 与初始值类型一致print(type(a.x))# 与初始值类型一致print("*" * 30)# print(type(None))print(type(bin))print(type(len))print(type(min))print(type(dir))print("*" * 30)data = "https://www.it610.com/article/message"result = collections.Counter(data)dict1 = collections.OrderedDict({"name": "Tom", "age": 25, "address": "CN"})deq1 = collections.deque("abc")print(type(result))# print(type(dict1))# print(type(deq1))#
实际应用举例:
1、判定是否是lambda类型
2、判定是否是函数类型
【Python的type函数结果你知道嘛】3、判定是否是方法
4、判定生成器类型等
源码:
from types import LambdaType, MethodType, GeneratorType, FunctionType, BuiltinFunctionTypetest1 = lambda x: x + 1# 判定是否是lambda类型。需要注意的是lambda就是函数类型,本质是一样的print(type(test1) == LambdaType)# True# 判定是否是函数类型print(type(test1) == FunctionType)# True# 判定是否是内置函数类型print(type(bin) == BuiltinFunctionType)# Trueclass Test2:def run(self):passtest2 = Test2()# 判定是否是方法print(type(test2.run) == MethodType)# 判定生成器类型a = (x * x for x in range(1, 10))print(type(a) == GeneratorType)
总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- Python中的tkinter库简单案例详解
- Java集合-HashMap
- 基础知识|ARM、DSP、FPGA的区别
- 学习历程分享|单片机,DSP,ARM,FPGA的特点与区别
- (stm32学习总结)—对寄存器的理解|(stm32学习总结)—对寄存器的理解 _
- 轻盈潇洒卓然不群,敏捷编辑器Sublime|轻盈潇洒卓然不群,敏捷编辑器Sublime text 4中文配置Python3开发运行代码环境(Win11+M1 mac)
- V8是怎么执行JS代码的
- 为什么现在大部分用的是ipv4,ipv6很少,有哪些区别()
- 【北亚服务器数据恢复】EMC存储Raid5中2块硬盘损坏,热备盘未激活的数据恢复案例
- PMP考试 | 点击率最高 的100个主要知识点