python笔记62 - __getitem__ 方法学习与使用

前言

如果在类中定义了__getitem__()方法,那么他的实例对象(假设为P)就可以这样P[key]取值。
当实例对象做P[key]运算时,就会调用类中的__getitem__()方法。

__getitem__方法

A类的实例A()可以通过点的方式获取到属性

# 作者-上海悠悠 QQ交流群:717225969 
# blog地址 https://www.cnblogs.com/yoyoketang/


class A(object):

    count = 0

    def __init__(self):
        self.name = "yoyo"
        self.age = 18

    def start(self):
        print("start1111111")

a = A()
print(a.count)
print(a.name)

如果我们想实现a['name']这种方式取值,在类中定义__getitem__()方法就可以实现

# 作者-上海悠悠 QQ交流群:717225969 
# blog地址 https://www.cnblogs.com/yoyoketang/


class A(object):

    count = 0

    def __init__(self):
        self.name = "yoyo"
        self.age = 18

    def start(self):
        print("start1111111")

    def __getitem__(self, item):
        return object.__getattribute__(self, item)

a = A()
print(a.count)
print(a.name)
# 通过[key]语法调用属性
print(a['count'])
print(a['age'])
print(a['start'])
print(a['start']())

运行结果

0
yoyo
0
18
<bound method A.start of <__main__.A object at 0x0000027CC08D96D8>>
start1111111
None
posted @   上海-悠悠  阅读(1150)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示