日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

isinstance和issubclass

發(fā)布時(shí)間:2023/12/2 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 isinstance和issubclass 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一、isinstance與type
  • 二、issubclass

一、isinstance與type

在游戲項(xiàng)目中,我們會(huì)在每個(gè)接口驗(yàn)證客戶(hù)端傳過(guò)來(lái)的參數(shù)類(lèi)型,如果驗(yàn)證不通過(guò),返回給客戶(hù)端“參數(shù)錯(cuò)誤”錯(cuò)誤碼。

這樣做不但便于調(diào)試,而且增加健壯性。因?yàn)榭蛻?hù)端是可以作弊的,不要輕易相信客戶(hù)端傳過(guò)來(lái)的參數(shù)。

驗(yàn)證類(lèi)型用type函數(shù),非常好用,比如

print(type('foo') == str) True print(type(2.3) in (int, float)) True

既然有了type()來(lái)判斷類(lèi)型,為什么還有isinstance()呢?

一個(gè)明顯的區(qū)別是在判斷子類(lèi)。

type()不會(huì)認(rèn)為子類(lèi)是一種父類(lèi)類(lèi)型;isinstance()會(huì)認(rèn)為子類(lèi)是一種父類(lèi)類(lèi)型。

千言不如一碼。

class Foo(object):passclass Bar(Foo):passprint(type(Foo()) == Foo) True print(type(Bar()) == Foo) False # isinstance參數(shù)為對(duì)象和類(lèi) print(isinstance(Bar(),Foo)) True

需要注意的是,舊式類(lèi)跟新式類(lèi)的type()結(jié)果是不一樣的。舊式類(lèi)都是<type 'instance'>。

# python2.+ class A:passclass B:passclass C(object):passprint('old style class',type(A())) # old style class <type 'instance'>print('old style class',type(B())) # old style class <type 'instance'>print('new style class',type(C())) # new style class <class '__main__.C'>print(type(A()) == type(B())) # True

注意:不存在說(shuō)isinstance比type更好。只有哪個(gè)更適合需求。

二、issubclass

class Parent:passclass Sub(Parent):passprint(issubclass(Sub, Parent)) True print(issubclass(Parent, object)) True

轉(zhuǎn)載于:https://www.cnblogs.com/TankJam/p/11163366.html

總結(jié)

以上是生活随笔為你收集整理的isinstance和issubclass的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。