python类特殊方法__getitem__的作用

在python的类中定义了特殊方法__getitem__,那么这个类在创建实例时,可以通过下标来取值
当从对象的下标取值时,会调用类中的方法__getitem__
下面我们来上一个例子

class TestFunc:
    def __init__(self, ip, port):
        self.ip = ip
        self.port = port
        self.addr = {
            "ip": self.ip,
            "port": self.port
        }
    def __getitem__(self, key):
        # return self.__dict__.get(key, "ip")
        return self.addr.get(key)
        
addr = TestFunc("192.168.1.1", "80")
print(addr["ip"])
print(addr.ip)
print(addr.port)

打印返回

192.168.1.1
192.168.1.1
80


当实例对象通过[] 运算符取值时,会调用它的方法__getitem__,从上面代码中输出192.168.1.1
如果在这个例子当中我们注释掉__getitem__方法那么print(addr["port"])这段代码将会报错
我们在使用__getitem__这个特殊方式时,一般__getitem__方法返回使用self.addr.get(key)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/862.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。