在Python語言中,有些庫在使用時,在網(wǎng)絡(luò)上找到的文檔不全,這就需要查看相應(yīng)的Python對象是否包含需要的函數(shù)或常量。下面介紹一下,如何查看Python對象中包含哪些屬性,如成員函數(shù)、變量等,其中這里的Python對象指的是類、模塊、實例等包含元素比較多的對象。這里以O(shè)penCV2的Python包cv2為例,進行說明。
由于OpenCV是采用C/C++語言實現(xiàn),并沒有把所有函數(shù)和變量打包,供Python用戶調(diào)用,而且有時網(wǎng)絡(luò)上也找不到相應(yīng)文檔;還有OpenCV還存在兩個版本:OpenCV2和OpenCV3,這兩個版本在所使用的函數(shù)和變量上,也有一些差別。
1.dir()函數(shù)
dir([object])會返回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對象的__dict__屬性,其中object對象可以是模塊,類,實例,或任何其他有__dict__屬性的對象。所以,其與直接訪問__dict__屬性等價。示例如下(這里是反例,mser對象中沒有__dict__屬性)。
3.help()函數(shù)
help([object])調(diào)用內(nèi)置幫助系統(tǒng)。輸入
>>>help(mser)
4.type()函數(shù)
type(object)返回對象object的類型。
5.hasattr()函數(shù)
hasattr(object,name)用來判斷name(字符串類型)是否是object對象的屬性,若是返回True,否則,返回False。
6.callable()函數(shù)
callable(object):若object對象是可調(diào)用的,則返回True,否則返回False。注意,即使返回True也可能調(diào)用失敗,但返回False調(diào)用一定失敗。
以上內(nèi)容為大家介紹了python培訓(xùn)之如何查看對象屬性,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。