在Python語(yǔ)言中,有些庫(kù)在使用時(shí),在網(wǎng)絡(luò)上找到的文檔不全,這就需要查看相應(yīng)的Python對(duì)象是否包含需要的函數(shù)或常量。下面介紹一下,如何查看Python對(duì)象中包含哪些屬性,如成員函數(shù)、變量等,其中這里的Python對(duì)象指的是類(lèi)、模塊、實(shí)例等包含元素比較多的對(duì)象。這里以O(shè)penCV2的Python包c(diǎn)v2為例,進(jìn)行說(shuō)明。
由于OpenCV是采用C/C++語(yǔ)言實(shí)現(xiàn),并沒(méi)有把所有函數(shù)和變量打包,供Python用戶(hù)調(diào)用,而且有時(shí)網(wǎng)絡(luò)上也找不到相應(yīng)文檔;還有OpenCV還存在兩個(gè)版本:OpenCV2和OpenCV3,這兩個(gè)版本在所使用的函數(shù)和變量上,也有一些差別。
1.dir()函數(shù)
dir([object])會(huì)返回object所有有效的屬性列表。示例如下:
$python
Python2.7.8(default,Sep242015,18:26:19)
[GCC4.9.220150212(RedHat4.9.2-6)]onlinux2
Type"help","copyright","credits"or"license"formoreinformation.
>>>importcv2
>>>mser=cv2.MSER()
>>>dir(mser)
['__class__','__delattr__','__doc__','__format__','__getattribute__','__hash__','__init__','__new__',
'__reduce__','__reduce_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','detect',
'empty','getAlgorithm','getBool','getDouble','getInt','getMat','getMatVector','getParams','getString',
'paramHelp','paramType','setAlgorithm','setBool','setDouble','setInt','setMat','setMatVector','setString']
2.vars()函數(shù)
vars([object])返回object對(duì)象的__dict__屬性,其中object對(duì)象可以是模塊,類(lèi),實(shí)例,或任何其他有__dict__屬性的對(duì)象。所以,其與直接訪問(wèn)__dict__屬性等價(jià)。示例如下(這里是反例,mser對(duì)象中沒(méi)有__dict__屬性)。
3.help()函數(shù)
help([object])調(diào)用內(nèi)置幫助系統(tǒng)。輸入
>>>help(mser)
4.type()函數(shù)
type(object)返回對(duì)象object的類(lèi)型。
5.hasattr()函數(shù)
hasattr(object,name)用來(lái)判斷name(字符串類(lèi)型)是否是object對(duì)象的屬性,若是返回True,否則,返回False。
6.callable()函數(shù)
callable(object):若object對(duì)象是可調(diào)用的,則返回True,否則返回False。注意,即使返回True也可能調(diào)用失敗,但返回False調(diào)用一定失敗。
以上內(nèi)容為大家介紹了python培訓(xùn)之如何查看對(duì)象屬性,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。