我注意到在某些情况下,先将对象的“您想做什么”写入对象之前,而有时将对象首先写入。
这是一个示例
dictionary = {}
dictionary["ole"] = 28
dictionary["maria"] = 26
dictionary["kim"] = 6
dictionary["lucy"] = 1
print(dictionary.keys()) # object first (dictionary)
print(sorted(dictionary)) # object after (sorted()) is first
我怎么知道什么时候该对象应该在“我要使用它做什么”之前或之后?
答案 0 :(得分:1)
Sorted是对对象进行操作的函数,但是存在于对象类之外(Python社区做出的决定),而.keys是字典的方法。即它存在于dict类中。
而且,sorted()
内置函数还可以对列表和其他可迭代对象进行排序,如果它是dict内部的方法,则所有其他可迭代类型都将需要自己的此类方法,并且内部的代码基本相同。对我而言,这违反了KISS和DRY原则。
有一个提议将这样的方法添加到dict类中,但是被BDFL拒绝(请阅读:Benevolent Dictator For Life,python的创建者Guido van Rossum),理由是该功能已经完成了同样的事情
如果需要,您可以重载dict类并在您的项目中添加自己的排序方法。
要知道何时使用内置函数,只有少数几个(https://docs.python.org/3/library/functions.html),因此除了其中一个之外,您还需要一种特定于当前处理类的方法>