浅谈Python3中函数参数传递方式
(1) id([object])用于获取对象的内存地址
(2) 在python中类型属于对象,变量是没有类型的
以上代码中,[1,2,3] 是 List 类型,“Runoob” 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是指向 List 类型对象,也可以是指向 String 类型对象。
(3)参数传递
对于不可变对象作为函数参数,相当于C系语言的值传递;如下图所示:
运行结果如下:
对于可变对象作为函数参数,且参数不指向其他对象时,相当于C系语言的引用传递。如下图所示:
运行结果如下:
对于可变对象作为函数参数,参数指向其他对象,对参数变量的操作不影响原变量的值。如下图所示:
运行结果如下:
可以发现上图中mylist的值没有随函数内参数的变化而变化。
注:Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型。而列表list、字典dict、集合set是可变类型。