如何测试您的功能是[1,2,4,3]
还是l
?
这可能有助于确定您是否要返回,例如,有序列表或替换它。
例如,如果它获得[1,2,4,3]
,则应返回[1,2,3,4]
。如果它得到l
,它应该将有序列表链接到l
并且不返回任何内容。
答案 0 :(得分:3)
你不能以任何合理的方式说出差异;你可以用gc
模块做一些可怕的事情来计算引用,但这不是一种合理的做事方式。匿名对象和命名变量之间没有区别(除了引用计数),因为无论函数接收到什么,它都会被命名; "变量"并不是真正的东西,Python有"名字"哪个引用对象,对象完全不关心它是否有命名或未命名的引用。
制作一致的API。如果你需要让它以两种方式运行,要么让它做两件事(变异到位并返回变异副本以保证完整性),或者制作两个不同的API(其中一个可以用另一个来编写,通过变异版本用于通过制作参数的本地副本来实现返回新版本,将其传递给变异版本,然后返回变异的本地副本。)