Python 传递参数

Python 传递参数在Python中,传递参数指的是函数或方法中的参数传输方式。Python中的参数传递有两种方式,分别为“传值调用”和“传引用调用”。

一、基本概念

在Python中,传递参数指的是函数或方法中的参数传输方式。Python中的参数传递有两种方式,分别为“传值调用”和“传引用调用”。

所谓“传值调用”,是指在传参时,将原始变量的值复制一份传入函数中参与运算操作。传值调用不会改变原始变量的值,在函数内部改变参数的值,不会对原始变量造成影响。而所谓“传引用调用”,则是在传参时,将原始变量的引用地址传给函数,在函数内部改变参数的值,会对原始变量造成影响。

在Python中,函数和方法的参数传递默认采用“传值调用”方式。

二、传值调用

在Python中,传值调用又分为对不可变对象(如:数字、字符串、元组)和可变对象(如:列表、字典)进行传参,不同类型的对象传参方式也有所不同。

1、对不可变对象进行传参

不可变对象的值一旦赋值就无法改变,因此将其传递给函数时,只是将其值复制一份传递给函数。在函数内部对参数进行修改不会对原始变量造成影响。


def change_number(num):
    num += 10
  
number = 10  # 定义一个变量
change_number(number)  # 调用函数
print(number)  # 输出结果为10

上述代码将数字类型的变量number传递给change_number()函数中,在函数内部对num进行加10操作,但是并不会对原始变量number造成影响。

2、对可变对象进行传参

而对于可变对象的传参,则与不可变对象不同,将其传递给函数时,传递的是原始对象的引用地址,即传递的是对象的指针,这意味着对其进行操作时会对原始变量造成影响。


def change_list(alist):
    alist.append(4)
  
list1 = [1, 2, 3]  # 定义一个列表
change_list(list1)  # 调用函数
print(list1)  # 输出结果为 [1, 2, 3, 4]

上述代码将列表类型的变量list1传递给change_list()函数中,函数在内部对list1进行了操作,结果会对原始变量造成影响,最终输出的结果为[1, 2, 3, 4]。

三、传引用调用

在Python中,使用特定的方式来实现传引用调用,通过使用import引入copy模块,在函数内部对参数进行修改时,不会对原始变量造成影响。


import copy

def change_dict(adict):
    adict["name"] = "Tom"

dict1 = {"name":"Jack", "age":21}  # 定义一个字典
dict2 = copy.copy(dict1)  # 使用copy模块拷贝一个字典
change_dict(dict2)  # 调用函数
print(dict1)  # 输出结果为 {"name":"Jack", "age":21}
print(dict2)  # 输出结果为 {"name":"Tom", "age":21}

上述代码引入了copy模块,并使用copy()函数对字典进行拷贝,将字典dict1拷贝给字典dict2。然后将字典dict2传递给change_dict()函数中,函数内对字典dict2进行了修改,但是原始字典dict1并没有受到影响,输出的结果也能够证明这点。

四、总结:

Python中,参数传递可以使用“传值调用”和“传引用调用”两种方式,对于不可变对象的传参,使用“传值调用”的方式,并且不会对原始变量造成影响;对于可变对象的传参,则使用“传引用调用”的方式,并且对原始变量造成影响。在Python中,如果需要在函数内部修改某个对象的值,可以在函数内部先使用copy()函数对其进行拷贝,这样就能够保证函数内部修改的对象不会对原始变量造成影响。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/21012.html

(0)
上一篇 2024-05-12
下一篇 2024-05-12

相关推荐

  • Python __call__方法的用法和实例详解

    Python __call__方法的用法和实例详解Python是一门强大的面向对象编程语言,支持各种特殊方法,其中就包括__call__方法。本文将详细介绍__call__方法的用法和实例。

    2024-04-15
    71
  • mysql 5.7.25 解压版安装-主从同步配置

    mysql 5.7.25 解压版安装-主从同步配置#锁定主数据库 flush tables with read lock #验证结果 INSERT INTO `kettle`.`user_copy` (`id`, `name`, `telphone…

    2023-02-12
    142
  • 掌握Python正则表达式,有效提升代码处理效率

    掌握Python正则表达式,有效提升代码处理效率Python是一款广泛应用于数据分析、Web开发、机器学习等领域的高级编程语言。在Python的常用功能中,正则表达式是一个非常重要的组成部分,它可以帮助程序员快速完成数据处理、抽取、筛选、替换等任务,从而提升代码的效率和准确性。下面,让我们从多个方面详细阐述Python正则表达式的应用。

    2023-12-28
    97
  • Python MongoDB GroupBy 实现

    Python MongoDB GroupBy 实现MongoDB是一个非关系型数据库管理系统,它以BSON (Binary JSON) 数据格式,存储数据。使用MongoDB进行数据查询时,常常需要对数据进行聚合操作,这就需要用到GroupBy操作。本文介绍如何使用Python实现MongoDB的GroupBy操作。

    2024-05-02
    102
  • Python函数参数的使用方法

    Python函数参数的使用方法Python 函数参数是调用函数时传递给函数的值。它们被定义在函数定义中,并在函数调用时使用。Python提供了很多种不同类型的函数参数,将会在下文中详细介绍。

    2024-02-24
    103
  • 云原生 | 混沌工程工具 ChaosBlade Operator Pod 篇[亲测有效]

    云原生 | 混沌工程工具 ChaosBlade Operator Pod 篇[亲测有效]作者:丁源 RadonDB 测试负责人 负责 RadonDB 云数据库、容器化数据库的质量性能测试,迭代验证。对包括云数据库以及容器化数据库性能和高可用方案有深入研究。 继《混沌工程工具 ChaosB

    2023-04-21
    152
  • Python转换成小写字符串

    Python转换成小写字符串在Python中,字符串是一种非常常见的数据类型,我们经常需要对字符串进行各种操作,如转换大小写、截取子串、替换字符等等。在本文中,我们将主要探讨如何将一个Python字符串转换成小写字符串。

    2024-01-25
    93
  • Python爬虫软件推荐

    Python爬虫软件推荐网络爬虫是从互联网上获取数据信息的程序。Python以其简洁优美和功能丰富而成为了网络爬虫开发的热门语言。

    2024-08-11
    24

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注