参数传递
1 # 值传递 : 传递不可变数据类型 number string tuple 2 # 传递的是常量(内存地址) 3 def func1(num1): 4 print(num1) 5 print(id(num1)) 6 7 # 值传递 8 func1(123) 9 a = 20 10 print(id(a)) # 1234567 11 func1(a) 12 13 14 # 引用传递:引用传递传递为可变数据类型,传递的内存地址 15 def func(li): 16 print('-----------------------------------') 17 li[0] = 100 18 print(li) # [100, 2, 3] 19 print(id(li)) 20 21 22 l1 = [1,2,3] 23 print(id(l1)) 24 print(l1) # [1,2,3] 25 func(l1) 26 print(l1) # [100, 2, 3] 27 28 29 print('*************************') 30 # 函数内部变量与函数外部变量 31 def func3(num): 32 # 当函数内部的变量名称与函数形参一致,在函数内部使用时,根据 33 # 变量使用的先后顺序取值,如果在变量声明之前使用,取实参的值, 34 # 如果在变量声明之后使用,取变量的值。 35 print("1---",num) # 200 36 num = 500 37 print('2---',num) # 500 38 # 在函数内部声明的变量不会影响函数外部声明的变量。 39 40 num = 200 41 func3(num) 42 print('3---', num) # 200