由self ["name"] =文件名混淆

Bas*_*sil 3 python self

我正在阅读这本名为"潜入Python"的精彩书.到目前为止,一切都对我有意义,但以下方法给我留下了一些问题.它在关于初始化类的章节中:

class FileInfo(UserDict):
    "store file metadata"
    def __init__(self, filename=None):
        UserDict.__init__(self)
        self["name"] = filename
Run Code Online (Sandbox Code Playgroud)

这只是我没有得到的最​​后一行.我现在看到它的方式,调用对象有一个列表,其项目"name"被赋予传递的参数的值.但这对我来说没有意义,因为我认为你只能通过整数访问列表索引.该书对此行说了以下内容:"您将参数文件名指定为此对象的名称键的值." 名称是否是每个对象定义的另一个变量(如doc)?如果是的话,为什么可以这样访问?

Ign*_*ams 6

[...]不仅仅是列表.任何类型都可以支持它,索引不一定必须是整数.self是当前对象,根据您的代码派生而来UserDict,它支持项操作方法.