Tim*_*wen 0 python oop python-3.x
如果我有代码:
names = ["Dave", "John", "Bob"]
Run Code Online (Sandbox Code Playgroud)
我想从我会做的名字中得到戴夫:
names[0]
Run Code Online (Sandbox Code Playgroud)
如果我现在有代码
class Friends:
def __init__(self, *people):
self.names = []
for v in people:
self.names.append(v)
names = Friends("Dave", "John", "Bob")
Run Code Online (Sandbox Code Playgroud)
现在要得到戴夫,我必须这样做:
names.names[0]
Run Code Online (Sandbox Code Playgroud)
是否有一种神奇的方法或类似的方法,以便我可以这样做:
names[0]
Run Code Online (Sandbox Code Playgroud)
再次得到戴夫?
是的,它被__getitem__称为:
class MyClass:
def __init__(self):
self.names = ["john", "arthur"]
def __getitem__(self, i):
return self.names[i]
print(MyClass()[0])
# john
Run Code Online (Sandbox Code Playgroud)