如果我有一个 dict
对象说 values = {'a': 'alpha', 'b': 'bravo'}
。
我见过一些用例,其中可以执行 values['a']
来获取 a
键的值。
现在我知道这是访问 dict
值的正常方式,但我也看到它与对象一起使用,例如 Tk.Scrollbar['command'] = yadayada
.
这种将 [ ]
与对象一起使用的做法是否有名称或文档?
最佳答案
[ ]
称为索引或切片(有时也称为类似数组/序列/映射的访问)。 x[idx] = val
称为索引或切片赋值。
负责实例在索引或切片时如何操作的方法是:
-
__getitem__
, -
__setitem__
和 -
__delitem__
. - (在 Python-2.x 中还有
__getslice__
,...但是自 python 2.0 以来这些已被弃用 - 如果您不从使用这些的类继承,则您不需要那些)
例如(缺少任何实际实现,只有一些 print
):
class Something(object):
def __getitem__(self, item):
print('in getitem')
def __setitem__(self, item, newvalue):
print('in setitem')
def __delitem__(self, item):
print('in delitem')
例如:
>>> sth = Something()
>>> sth[10]
in getitem
>>> sth[10] = 100
in setitem
>>> del sth[10]
in delitem
关于python - 用[ ]设置对象变量时叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080311/