在 c/c++ 中,当您在函数内创建局部变量时,堆栈中有变量。
http://effbot.org/zone/call-by-object.htm
CLU 对象独立于过程激活而存在。对象的空间是从动态存储区分配的 /.../ 理论上,所有的对象都会永远存在下去。实际上,当任何 CLU 程序不再可访问对象时,可以回收对象使用的空间。
这是否意味着 python 中的对象是从堆中创建的(就像 c/c++ 中的 malloc 一样)?并且对象在没有与之关联的名称时被释放?(如智能指针)?
例子:
def foo(a):
result = []
result.append(a)
return result
foo("hello")
myList = foo("bye")
那么第一个 result([]) 是在堆中创建的并且因为没有与之关联的名称而被释放?