網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
簡(jiǎn)介:type() 函數(shù)可以對(duì)數(shù)據(jù)的類型進(jìn)行判定。
isinstance() 與 type() 區(qū)別:
type() 不會(huì)認(rèn)為子類是一種父類類型,不考慮繼承關(guān)系。 isinstance() 會(huì)認(rèn)為子類是一種父類類型,考慮繼承關(guān)系。 如果要判斷兩個(gè)類型是否相同推薦使用 isinstance()。
type函數(shù)結(jié)果舉例,主要有六大類:
1、標(biāo)準(zhǔn)數(shù)據(jù)類型。
2、module模塊類型:主要來(lái)源于模塊安裝并使用
3、type類型:主要來(lái)源于標(biāo)準(zhǔn)數(shù)據(jù)類型的類對(duì)象
4、程序員新增的類,自定義的類型:<class ‘main.XXX’>、NoneType
5、builtin_function_or_method 內(nèi)置函數(shù)或者方法
6、其他拓展類型如:collections.Counter、collections.deque等
源碼:
import time import random import asyncio import collections # 基本數(shù)據(jù)類型 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'>
實(shí)際應(yīng)用舉例:
1、判定是否是lambda類型
2、判定是否是函數(shù)類型
3、判定是否是方法
4、判定生成器類型等
源碼:
from types import LambdaType, MethodType, GeneratorType, FunctionType, BuiltinFunctionType test1 = lambda x: x + 1 # 判定是否是lambda類型。需要注意的是lambda就是函數(shù)類型,本質(zhì)是一樣的 print(type(test1) == LambdaType) # True # 判定是否是函數(shù)類型 print(type(test1) == FunctionType) # True # 判定是否是內(nèi)置函數(shù)類型 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)
總結(jié)
原文鏈接:https://blog.csdn.net/hzblucky1314/article/details/122659446
相關(guān)推薦
- 2022-04-11 springboot上傳文件到Nginx代理的FTP文件服務(wù)器
- 2022-12-02 淺析Tomcat使用線程池配置高并發(fā)連接_Tomcat
- 2021-12-03 Go并發(fā)編程中sync/errGroup的使用_Golang
- 2023-04-08 C#獲取時(shí)間戳的方法及時(shí)間戳轉(zhuǎn)換問(wèn)題_C#教程
- 2022-04-25 Pycharm報(bào)錯(cuò):'NoneType'?object?has?no?attribute?'byte
- 2022-10-07 Unity游戲開(kāi)發(fā)實(shí)現(xiàn)場(chǎng)景切換示例_C#教程
- 2022-10-14 Jboss使用jndi配置數(shù)據(jù)源連接數(shù)據(jù)庫(kù)
- 2023-02-09 Python去除html標(biāo)簽的幾種方法總結(jié)_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支