在Python中,如何知道函数是获取变量还是对象?

时间:2016-05-31 23:51:02

标签: python-3.x

如何测试您的功能是[1,2,4,3]还是l

这可能有助于确定您是否要返回,例如,有序列表或替换它。

例如,如果它获得[1,2,4,3],则应返回[1,2,3,4]。如果它得到l,它应该将有序列表链接到l并且不返回任何内容。

1 个答案:

答案 0 :(得分:3)

你不能以任何合理的方式说出差异;你可以用gc模块做一些可怕的事情来计算引用,但这不是一种合理的做事方式。匿名对象和命名变量之间没有区别(除了引用计数),因为无论函数接收到什么,它都会被命名; "变量"并不是真正的东西,Python有"名字"哪个引用对象,对象完全不关心它是否有命名或未命名的引用。

制作一致的API。如果你需要让它以两种方式运行,要么让它做两件事(变异到位并返回变异副本以保证完整性),或者制作两个不同的API(其中一个可以用另一个来编写,通过变异版本用于通过制作参数的本地副本来实现返回新版本,将其传递给变异版本,然后返回变异的本地副本。)