例如,'somestring '.strip()
将返回带有尾部空格的字符串。但是,[1, 2, 3].sort()
将返回None
。是否有规则或某些东西可以帮助我们了解内置方法何时返回某些内容以及什么时候不返回?
或者我只需要记住它们?
答案 0 :(得分:2)
您必须经常参考文档(或者如果您能够按照自己的说法进行操作,则可以记住它们)。但是,有一条经验法则,你忽略了(或许)。
同时举两个例子:
'somestring '.strip() # string method
[1, 2, 3].sort() # list method
请注意,字符串是不可变的,列表是可变的。结果是,对于不可变对象,方法必须返回一个可以分配给变量的新对象。然而,可变对象倾向于返回None
,因为本质上不需要返回对象 - 它只是被就地修改。
例如,对此的例外是列表的.pop()
方法,它恰好返回从列表中删除的对象。
答案 1 :(得分:1)
除了@ Eithos的回答,你可以使用type()
函数。简单地说,返回None的就地嵌入函数的结果类型是None:
>>> type([].sort())
<type 'NoneType'>
>>> type(''.strip())
<type 'str'>
答案 2 :(得分:1)