1. 程式人生 > >python基礎===成員訪問__len__()和__getitem__()

python基礎===成員訪問__len__()和__getitem__()

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__()