#!/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
列印結果如下:
資料參考:https://www.liaoxuefeng.com/