前言
如果在類中定義了__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