python基礎===成員訪問__len__()和__getitem__()
阿新 • • 發佈:2018-04-26
ret spa self. add com address python nbsp microsoft
class A:
def __init__(self,*args):
self.name = arg
pass
def __len__(self):
return len(self.name)
a = A("32","asda",435)
print(len(a))
# 3
返回對象實例的“長度”
凡是在類中定義了這個__getitem__ 方法,那麽它的實例對象(假定為p),可以像這樣p[key] 取值,當實例對象做p[key] 運算時,會調用類中的方法__getitem__。
一般如果想使用索引訪問元素時,就可以在類中定義這個方法(__getitem__(self, key) )。
class DataBase:
‘‘‘Python 3 中的類‘‘‘
def __init__(self, id, address):
‘‘‘初始化方法‘‘‘
self.id = id
self.address = address
self.d = {self.id: 1,
self.address: "192.168.1.1",
}
def __getitem__(self, key):
# return self.__dict__.get(key, "100")
return self.d.get(key, "default")
data = DataBase(1, "192.168.2.11")
print(data["hi"])
print(data[data.id])
參考資料:
https://blog.csdn.net/u013061183/article/details/74773196
https://zhuanlan.zhihu.com/p/27661382
python基礎===成員訪問__len__()和__getitem__()