2016-12-09 107 views
0

是否有一种简单的方法来确定/记住哪些函数返回一个新对象,以及哪个函数作用于现有对象。例如,list.append('new stuff')作用于该实际对象,而string.rstrip()返回需要在某处分配的新字符串。告诉执行动作的函数和返回函数之间的区别

我永远不得不查找(或打开Python解释器快速检查)哪些函数作用于哪些函数以及返回哪些函数。

+1

您需要检查手册才能确定。 –

+4

我想你只需要记住哪些东西是可变的(列表,字典,...),哪些是不可变的(字符串,元组等等)。 – jonrsharpe

+1

@jonrsharpe即使可变对象也可以传递给返回新对象的函数,而不会改变传入的对象。 –

回答

2

有没有完全可靠的方法,但也有一些很好的启发:

  • 如果对象是不可改变的,没有它的方法变异吧,当然,即使是那些像str.replace真正的声音变化的。
  • sortedset.intersection之类的东西,形容词或名词的名称,通常产生一个新的对象。
  • 如果某个对象是可变的,则带有动词名称的方法通常会修改该对象。这将是像list.appendset.add

不幸的是,不是每个人都挑选好名字,所以我们之类的东西numpy.sort,其产生与NumPy阵列的排序副本,真的应该被称为numpy.sorted。最可靠的方法将始终是在翻译会话中检查文档或进行测试。

0

据我所知,不,没有比你描述的更简单的方法。

像大多数人(包括我在内!)学的是做更多的节目,记得经常使用的功能,并查看这些手册,你不知道:)

1

这就是我通常做的,我打开python解释器并通过编写片段来尝试不同的事情。然而,有更强大的方法可以在输入时显示元数据,例如,您可以使用PyCharm为您提供type hinting,这会告诉您您尝试访问的对象中的可用函数以及所需参数和返回提示。

相关问题