参数传递:
在Python中,类型属于对象,变量是没有类型的:如Str = ‘hello’;Str = 50,在以上代码中,hello是string类型的,50是整型,而变量Str是没有类型的,它仅仅是一个对象的引用(指针),可以指向各种类型对象。
Python函数参数的传递:
不可变类型:整数、字符串、元组。如fun(num),传递的只是num值,没有影响对象本身。如果在fun(num)内部修改num的值,只是修改了另个一复制的对象,不会影响num本身。
可变类型:列表,字典。如fun(list),则是将lista真正的传过去,修改后fun外部的lista也会受影响。
1 #函数参数传递 2 # 2022.08.13周六PM16:50 天气热 3 #不可变类型:整数、字符串、元组。如fun(num),传递的只是num的值,没有影响num对象本身。如果在fun(num)内部修改num的值,只是修改另一个复制的对象,不会影响num本身。 4 #可变类型:列表,字典。如fun(lista),则是将lista真正的传过去,修改后fun外部的lista也会受影响,如下例: 5 a = 10 6 b = 'hello' 7 c = (1,2,3) 8 9 def add1(variable): 10 variable = variable + 10 11 print(variable) 12 13 add1(a) #不可变类型 14 print(a) 15 16 def add2(variable): 17 variable = variable + 'aaa' 18 print(variable) 19 add2(b) #不可变类型 20 print(b) 21 22 def add3(variable): 23 variable = (1,2) #variable.append(5)会报错,元组是没有append方法的 24 print(variable) 25 add3(c) #不可变类型 26 print(c) 27 28 29 #可变类型:列表,字典。如fun(lista),则是将lista真正的传过去,修改后fun外部的lista也会受影响,如下例: 30 lista = [1,2,3,4] 31 dicta = {'a':1,'b':2,'c':3} 32 print(id(lista)) #求变量的地址,可以用id()方法将其id打印出来查看 33 def add4(listb): 34 listb.append(5) 35 print(id(listb)) #地址没有变,说明值确实已经被修改了 36 print(listb) 37 add4(lista) 38 print(lista)