python基础===成员访问__len__()和__getitem__()

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

猜你喜欢

转载自www.cnblogs.com/botoo/p/8947516.html