python中,定义的函数中的参数是什么形式的?怎么觉得和C中的静态类型有点相似

例如
def func(list = []):
list.append('1')
print id(list)
func()
func()
这段代码中,都没有实际参数,使用默认参数,两次调用的默认参数都保存在同一个内存中,且一直存在,有点类似于C中的静态数据类型,不根据存在的域而消失。有人能给详细解释下python中的参数的存放以及使用吗?

嗯。。同感。。我感觉,它和C中静态变量的引用,是一样的(这样说更客观点)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-29
我的理解 python对具有相同“值”的同一数据类型在内部只有一个实例,任何引用它的变量都是这个实例的一个“引用”(指针)。只有当这个变量会修改这个实例内容时才会产生新的实例并改变这个变量的指向。
如 str = 'a'
str2 = 'a'
print id(str)
print id(str2)
可以发现是相同的。
而static 数据类型则是不同,对每一个static变量 都会保存一份单独的空间,即使他们的内容一样。本回答被网友采纳
第2个回答  2012-03-29
1)list现在是工厂函数,不要用来作变量名;
2)列表是可变对象,导致数据被保存下来
第3个回答  2012-03-27
参数可以是python支持的任意数据类型和对象,和别的语言的参数变量没有什么不同追问

你没看明白题目的意思
貌似你也不理解C中的静态数据类型和python中默认参数之间的相似性

相似回答