第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

確定對象的類型?

確定對象的類型?

狐的傳說 2019-07-01 11:02:57
確定對象的類型?是否有一種簡單的方法來確定變量是列表、字典還是其他什么?我得到的對象可能是兩種類型,我需要能夠區(qū)分。
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經(jīng)驗 獲得超13個贊

要獲取對象的類型,可以使用內(nèi)置的type()功能。將對象作為唯一參數(shù)傳遞將返回該對象的類型:

>>> type([]) is listTrue>>> type({}) is dictTrue>>> type('') is strTrue>>> type(0) is intTrue>>> type({})<type 'dict'>>>> type([])<type 'list'>

當然,這也適用于自定義類型:

>>> class Test1 (object):
        pass>>> class Test2 (Test1):
        pass>>> a = Test1()>>> b = Test2()>>> type(a) is Test1True>>> type(b) is Test2True

請注意type()將只返回對象的直接類型,但無法告訴您有關(guān)類型繼承的信息。

>>> type(b) is Test1False

要解決這個問題,您應該使用isinstance功能。當然,這也適用于內(nèi)置類型:

>>> isinstance(b, Test1)True>>> isinstance(b, Test2)True>>> isinstance(a, Test1)True>>> isinstance(a, Test2)False>>> isinstance([], list)True>>> isinstance({}, dict)True

isinstance()通常是確保對象類型的首選方法,因為它也將接受派生類型。因此,除非您實際上需要類型對象(無論出于何種原因),否則使用isinstance()優(yōu)先于type().

第二參數(shù)isinstance()還可以接受類型的元組,因此可以一次檢查多個類型。isinstance如果對象屬于以下任何類型,則返回true:

>>> isinstance([], (tuple, list, set))True


查看完整回答
反對 回復 2019-07-01
?
萬千封印

TA貢獻1891條經(jīng)驗 獲得超3個贊

你可以用type():

>>> a = []>>> type(a)<type 'list'>>>> f = ()>>> type(f)<type 'tuple'>


查看完整回答
反對 回復 2019-07-01
?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

在對象的實例中,您還擁有:

__class__

屬性。下面是從Python3.3控制臺獲取的示例

>>> str = "str">>> str.__class__<class 'str'>>>> i = 2>>> i.__class__<class 'int'>>>> class Test():...     pass...>>> a = Test()>>> a.__class__<class '__main__.Test'>

請注意,在python 3.x和New樣式類(可以從Python2.6中任意選擇)中,類和類型已經(jīng)合并,這有時會導致意外的結(jié)果。主要出于這個原因,我最喜歡的測試類型/類的方法是等實例內(nèi)置功能。


查看完整回答
反對 回復 2019-07-01
  • 3 回答
  • 0 關(guān)注
  • 536 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號