天天看點

python 擷取對象資訊dir()

#!/bin/env python
#-*- coding: utf8 -*-
print "擷取一個對象的所有屬性與方法用dir():"
print dir('ABC')
print "字元串長度:"
print len('ABCDE')
print "字元串小寫:"
print "ABC".lower()

#自定義字元長度
# class MyObject(object):
#     def __len__(self):
#         return 10
# obj = MyObject();
# print len(obj)

class MyObject(object):
    def __init__(self):
        self.x = 9
    def power(self):
        return self.x * self.x

obj = MyObject()
print "#######操作隊形:getattr(),setattr(),hasattr()#######"
print "有屬性x嗎?:",hasattr(obj,'x')
print "列印x值:",obj.x
print "有屬性y嗎?:",hasattr(obj,'y')
print "沒有屬性y,添加y屬性如下:"
setattr(obj,'y',32)
print "添加y屬性成功,列印y值:",obj.y
print "用getattr函數擷取y值:",getattr(obj,'y')
print "擷取不存在的屬性,抛出AttributeError錯誤:"
# print getattr(obj,'98k')
print '針對不存在的屬性,添加預設值并傳回該值:',getattr(obj,'98k',500)

print "################也可以擷取對象的方法##################"
print "是否有power屬性?",hasattr(obj,'power')
print "擷取power屬性:",getattr(obj,'power')
print "擷取power屬性指派變量如下:"
fn=getattr(obj,'power')
print "調用fn()與power()是一樣的:",fn()

print "正确的用法例子:"
def readImage(fp):
    if hasattr(fp,'read'):
        return readData(fp)
    return None
           

列印結果如下:

python 擷取對象資訊dir()

資料參考:https://www.liaoxuefeng.com/