Python-09_01函数参数的传递

参数传递:

在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)

posted @ 2022-08-22 10:35  TesterWei  阅读(48)  评论(0编辑  收藏  举报