117.info
人生若只如初见

Python传参与传值有什么不同

在Python中,函数的参数传递方式可以分为传值和传引用两种方式。

  1. 传值(传递对象的副本):当向函数传递一个不可变对象(如整数、字符串、元组)时,会创建该对象的副本,并将副本传递给函数。在函数内部对参数进行修改不会影响到原始对象。

示例代码:

def change_value(x):
    x = 10
    
num = 5
change_value(num)
print(num)  # 输出 5

在上述代码中,将变量num传递给change_value函数。在函数内部将参数x的值修改为10,但是并不会对原始对象num产生影响。

  1. 传引用(传递对象的引用):当向函数传递可变对象(如列表、字典、集合)时,传递的是对象的引用(指针)。在函数内部对参数进行修改,会影响到原始对象。

示例代码:

def change_list(lst):
    lst.append(4)
    
my_list = [1, 2, 3]
change_list(my_list)
print(my_list)  # 输出 [1, 2, 3, 4]

在上述代码中,将列表my_list传递给change_list函数。在函数内部通过append方法向参数lst所引用的列表添加元素4,导致原始列表也被修改。

总结:

  • 对于不可变对象,传值方式会创建副本,函数内部的修改不会影响到原始对象。
  • 对于可变对象,传引用方式直接传递引用,函数内部的修改会影响到原始对象。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe240AzsLAgBfAFU.html

推荐文章

  • Python闭包的用途有哪些

    Python闭包的用途有以下几个: 封装变量:闭包可以将变量封装起来,使其在函数之外仍然可以被访问,但又不会污染全局命名空间。
    保存状态:闭包可以保存函数...

  • python中的title函数怎么使用

    在Python中,title函数用于将字符串的每个单词的首字母转为大写,而其余字母转为小写。使用方法如下:
    string = "hello world"
    result = string.title...

  • python如何去掉小数

    可以使用int()函数将小数转换为整数,即去掉小数部分。
    例如:
    num = 3.14
    num = int(num)
    print(num) # 输出3 另外,也可以使用math模块中...

  • python怎么将小数化为整数

    要将小数转化为整数,可以使用Python中的int()函数。该函数将一个数值(整数、浮点数或字符串)转化为整数。如果小数是一个浮点数,则int()函数会直接去掉小数部...

  • mongodb占用内存过高如何解决

    要解决MongoDB占用内存过高的问题,可以考虑以下几个方面的解决办法:1. 调整MongoDB的配置:可以通过修改MongoDB的配置文件来调整内存的使用方式,比如降低缓存...

  • python异步框架怎么搭建

    要搭建Python异步框架,可以使用以下步骤:
    1.选择异步框架:Python有许多异步框架可供选择,如Tornado、Twisted、asyncio等。根据你的需求和熟悉程度选择合...

  • centos怎么设置用户访问目录权限

    要设置用户访问目录权限,可以按照以下步骤进行操作: 打开终端,使用ls -l命令查看目录的权限信息,找到要设置权限的目录。 使用chmod命令设置目录的权限。例如...

  • docker容器怎么关闭防火墙

    在Docker容器中关闭防火墙可以通过以下方法实现: 进入Docker容器:使用docker exec命令进入正在运行的容器,例如:
    docker exec -it /bin/bash 停止防火墙...