参数传递

 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

 

posted @ 2019-07-29 19:19  巨菜的小鸟  阅读(101)  评论(0编辑  收藏  举报