如果我有一个dict
对象说values = {'a': 'alpha', 'b': 'bravo'}
。
我见过用例values['a']
可以获取a
密钥的值。
现在我知道这是访问dict
值的常规方法,但我也看到它与Tk.Scrollbar['command'] = yadayada
等对象一起使用。
这种使用[ ]
对象的做法是否有名称或文档?
答案 0 :(得分:4)
[ ]
称为索引或切片(有时称为数组/序列/映射类访问)。 x[idx] = val
称为索引或切片 assigment 。
负责索引或切片时实例的行为的方法是:
__getitem__
,__setitem__
和__delitem__
。 __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
答案 1 :(得分:0)
python tkinter文档中对此进行了简要描述。 Tkinter只是为了方便起见,该功能没有特定于tkinter的名称。
https://docs.python.org/3.6/library/tkinter.html#setting-options
选项可控制窗口小部件的颜色和边框宽度。选项可以通过三种方式设置:
在对象创建时,使用关键字参数
fred = Button(self, fg="red", bg="blue")
创建对象后,将选项名称视为字典索引
fred["fg"] = "red"
fred["bg"] = "blue"
使用config()方法更新对象创建后的多个attrs
fred.config(fg="red", bg="blue")
有关tkinter上下文之外的更多通用信息,请参阅A python class that acts like dict