什么时候知道python内置方法会返回什么规则?

时间:2015-03-03 05:49:27

标签: python

例如,'somestring '.strip()将返回带有尾部空格的字符串。但是,[1, 2, 3].sort()将返回None。是否有规则或某些东西可以帮助我们了解内置方法何时返回某些内容以及什么时候不返回?

或者我只需要记住它们?

3 个答案:

答案 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)

有一些可能的答案:

  1. 阅读手册,(并记住经常使用的手册)。
  2. 在python shell中,ipython或调试器尝试使用你想要使用的东西并查看它返回的内容
  3. 在python shell中使用帮助( someobject ) - 快速阅读手册
  4. 在ipython中使用某些 ?来了解更多关于的内容 - ditto
  5. 某些IDE例如:Wing有一个代码提示工具,可在您键入时显示帮助。
  6. 在代码上运行pylint,可以发现此类错误