为什么dict.fromkeys(keys,value)有效,但list.append()没有?

时间:2018-03-18 02:36:54

标签: python types keyword

我对python很新,看到我们可以通过dict.fromkeys(keys, value)得到一个字典,我不知道为什么你在这里可以使用dict而不是dict()。?

对于list和int或str,如果使用此

list.append(1)
TypeError                                 Traceback (most recent call last)
<ipython-input-40-f15c629423f5> in <module>()
      1 
----> 2 list.append(1)

TypeError: descriptor 'append' requires a 'list' object but received a 'int'

即使使用列表对象

它也不起作用
list.append([1])

TypeError                                 Traceback (most recent call last)
<ipython-input-41-b98586d7f7ed> in <module>()
      1 
----> 2 list.append([1])

TypeError: append() takes exactly one argument (0 given)

如果我

type(dict)

return type

什么是&#39;类型&#39;类型?

这可能是一个愚蠢的问题,但我在网上找不到任何答案,任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

dict.fromkeysclass method,基本上意味着它不需要附加到dict类的实例来工作。这是有道理的 - dict.fromkeys基本上是dict的替代构造函数。

另一方面,

list.append是一个常规实例方法,这意味着我们需要一个实际的list实例来调用.append。这也是有道理的 - 附加是一个不在创建列表之前的操作,即我们需要一个要附加的列表。

我们还可以将实例方法作为类属性引用,并获取我们将实例作为第一个参数传递的常规函数​​对象,即list.append(some_list, 'foo')