我有一个返回元组的sqlalchemy查询。我将这个元组传递给一个函数,因为它是一个不可变类型,所以在被调用函数中创建了一个新的元组实例。
python如何在内存管理方面解决这个问题?是否创建了元组的完整副本,或者它是否使用了一些聪明的“写入/零拷贝复制”功能?
对我来说,问题是这些原始元组会消耗大量内存,只需调用函数对它们进行一些处理,Python就会有效地将内存消耗加倍。
除了内联编写代码外,如何避免这种低效率?
答案 0 :(得分:2)
调用函数时,只传递对元组的引用,而不是副本。它不可变的事实并不意味着它将被复制到函数调用上,只是你不能修改它。
答案 1 :(得分:0)
Python按值传递对象的引用。所以你不用担心它。