Python Parameter Passing Note

本文提供4个Python Demo帮助初学者理解参数传递,包括传值、传引用、改变列表元素和修改元组元素。通过实例解析,深入浅出地解释了Python中的参数传递机制,对比了传值与传引用的区别,并给出了一种简化理解方法。

  我刚刚开始学习Python, Python中的参数传递总是让我很困惑。我写了4个简单的Demo,帮助我理解Python的参数传递,希望对大家都能有所帮助。

0:

def change(x):
    x = 1
a = 10
print('a is {0}'.format(a)) change(a) print('a is {0}'.format(a))

Output:
a is 10
a is 10

 

1:

def change1(x):
    x = [1, 2]
    
a = [10, 20]
print('a is {0}'.format(a)) change1(a) print('a is {0}'.format(a))

Output:
a is [10, 20]
a is [10, 20]

2: [NOTE]We should pay more attention to this demo.

def change2(x):
    x[:] = [1, 2, 4]

a = [10, 20]
print('a is {0}'.format(a)) change2(a) print('a is {0}'.format(a))

Output:
a is [10, 20]
a is [1, 2, 4]

3:

def change3(x):
    x[0] = [1, 2, 4]

a = [10, 20]
print('a is {0}'.format(a)) change3(a) print('a is {0}'.format(a))

Output:
a is [10 20]
a is [[1, 2, 4], 20]]

  对于参数传递,我总是用传值或者传址来理解,但在《Python基础教程》中建议我们用这样的方法来理解Python中的参数传递:(以Demo1为例说明)

1.#demo1 again:
2.def change1(x):
3.    x = [1, 2]
4.   
5.a = [10, 20]
6.print('a is {0}'.format(a)) 7.change1(a) 8.print('a is {0}'.format(a)) #We can think it in the following way: #5行: a = [10, 20]
#7行:NOTE,用下面代码来理解参数传递 x = a
#3行: x = [1, 2]

  通过这样方法来理解参数传递,省去了我们的很多的考虑,个人感觉这种方法还是很不错的,不知道各位大神们是怎么理解Python中的参数传递的?

转载于:https://www.cnblogs.com/lxw0109/p/python_parameter_passing.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值