在python中,如果一个函数或者方法对对象进行的是就地改动,那它就应该返回None,这是因为,好让调用者知道传入的参数发生了变动,而且并未产生新的对象。举个栗子
比如说list.sort()
list_ = [11, 6, 3, 34] list_.sort() # 就地排序列表,返回值为None print(list_) print(list_.sort())
结果
[3, 6, 11, 34] None
而用sorted()则不会,它是直接建立一个列表作为返回值,并且这个方法可以接受任何形式的可迭代对象作为参数,包括不可变序列或生成器,最终都会返回一个列表