python函数中的参数传递的两种方式

324次阅读
没有评论
python函数中的参数传递的两种方式

小菜鸟也能懂的Python函数参数传递

大家好,我是一个对编程兴趣浓厚的小伙伴,最近学习Python时遇到了一个问题:函数中的参数传递。今天就来和大家分享一下我对这个问题的理解和体会。

1. 传参赋值VS传引用

在Python中,函数参数的传递方式可以分为两种:传参赋值和传引用。是不是感觉有点儿绕?没关系,跟着我一起来看。

首先,我们先来看一段代码:

def update_num(num):
    num += 1
    
num_value = 10
update_num(num_value)
print(num_value)  # 输出结果是多少呢?

大家猜猜看,上面的代码执行后,最终输出的结果是多少?

如果你猜是11的话,那就错啦!实际上,输出结果是10。

为什么会这样呢?原因就在于Python中函数参数的传递方式是传引用

2. 传参赋值:像复制糖果一样

为了更好地理解传参赋值,我们可以做个比喻:想象你有一颗糖果,然后你把这颗糖果复制了一份给你的朋友。无论你怎么吃自己的糖果,朋友手里的糖果都不会受到影响。

我们再来看下面的代码:

def update_list(my_list):
    my_list.append('apple')
    
fruit_list = ['banana', 'orange']
update_list(fruit_list)
print(fruit_list)  # 输出结果是什么呢?

是不是感觉代码和糖果比喻很相似?嗯,说得没错!在上面的代码中,我们将一个列表传递给了函数update_list(),并在函数内部对该列表进行了修改。

所以,最终输出的结果是:['banana', 'orange', 'apple']

这是因为,当我们传递参数时,Python实际上是将变量的引用传递给函数,也就是说函数中的参数与传入的变量指向同一块内存地址。所以,当我们在函数中修改了这个参数时,原始变量也会受到影响。

3. 传引用:指向同一家冰淇淋店

接下来,我们再来一组代码:

def update_dict(my_dict):
    my_dict['name'] = 'Lucy'
    
person_info = {'name': 'Lisa', 'age': 25}
update_dict(person_info)
print(person_info)  # 输出结果会是什么呢?

这次的代码也很有意思,我们将一个字典传递给了函数update_dict(),并在函数中修改了这个字典。

那么最后输出的结果是:{'name': 'Lucy', 'age': 25}

和前面一样,字典也是通过传引用的方式传递给函数的,所以函数中对参数的修改会同时反映到原始变量上。

你可以把这种传引用的方式理解成朋友们都指向同一家冰淇淋店,无论谁吃了冰淇淋,其他人都会看到同样的效果。

4. 总结

通过上面的例子,我们可以得出结论:在Python中,函数的参数传递方式是传引用。这意味着,当我们传递可变对象(如列表、字典等)给函数时,函数中的操作会影响到原始变量。而对于不可变对象(如数字、字符串等),函数中的操作不会影响到原始变量。

希望通过这篇文章,大家能更好地理解函数参数传递的概念。相信在未来的编程之路上,我们会越走越远,成为真正的编程高手!

写了这么多感触,我也算是对函数参数传递有了更深入的理解。希望这篇文章能够帮助到正在学习Python的小伙伴们。如果有不足或错误之处,请多多指教。

感谢大家的阅读!祝大家编程愉快!

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:[db:作者]2023-09-22发表,共计1390字。
新手QQ群:570568346,欢迎进群讨论 Python51学习