首页 > 编程语言 >【补充】Python中的参数传递是值传递还是引用传递

【补充】Python中的参数传递是值传递还是引用传递

时间:2023-07-25 16:11:06浏览次数:48  
标签:参数传递 函数 Python 传递 对象 my

【补充】Python中的参数传递是值传递还是引用传递

  • Python中的参数传递都是copy一份传递过去,由于一切皆对象,传过去的都是地址
  • 在Python中又区分可变类型和不可变类型
    • 可变类型在函数中修改会影响原始的值
    • 不可变类型,不会影响原始的值

在Python中,参数传递是按对象引用传递的方式进行的,也可以称为"传对象引用"。

  • 这意味着在函数调用时
    • 参数的值不是直接传递给函数
    • 而是传递了对象的引用(内存地址)。
  • 当我们将一个对象作为参数传递给函数时
    • 实际上传递的是该对象的引用(内存地址)。
    • 函数内部可以通过该引用来访问和操作原始对象。
  • 需要注意的是
    • Python的对象分为可变(mutable)和不可变(immutable)两种类型。
      • 对于不可变类型的对象(如整数、字符串、元组等)
      • 无论是在函数内还是外部对它们进行修改
      • 都会创建新的对象。
      • 因此,看起来像是通过值传递。
    • 对于可变类型的对象(如列表、字典等)
      • 在函数内部对它们的修改会影响到原始对象的值
      • 因为它们在内存中是可变的
      • 而函数传递的是对象的引用。
  • 下面通过示例代码演示参数传递的方式:
def update_list(lst):
    lst.append(4)

my_list = [1, 2, 3]
update_list(my_list)
print(my_list)  # 输出 [1, 2, 3, 4]

def update_string(str):
    str += " World"

my_str = "Hello"
update_string(my_str)
print(my_str)  # 输出 "Hello"

  • 在第一个示例中
    • 我们将一个列表对象传递给函数
    • 并在函数内部修改了该列表。
    • 这种修改会反映到原始列表对象上。
  • 而在第二个示例中
    • 我们将一个字符串对象传递给函数
      • 并在函数内部进行了字符串拼接操作。
    • 虽然函数内部的操作看起来修改了字符串
      • 但实际上是重新创建了一个新的字符串对象
      • 并没有改变原始的字符串对象。

综上所述,可以说Python的参数传递是按对象引用传递的方式进行的,具体表现根据对象的可变性而定。

标签:参数传递,函数,Python,传递,对象,my
From: https://www.cnblogs.com/dream-ze/p/17580121.html

相关文章

  • 【Python】蒙特卡洛模拟 | PRNG 伪随机数发生器 | LCG 线性同余算法 | 马特赛特旋转算
    ......
  • 输出数组内每个元素的类型python
    输出数组内每个元素的类型PythonPython是一种简单而强大的编程语言,广泛用于数据处理和科学计算。在Python中,数组是一种重要的数据结构,它可以存储多个元素,并允许我们对这些元素进行操作。在本文中,我们将探讨如何输出数组内每个元素的类型,并提供相应的代码示例。什么是数组?在计算......
  • 使用python调用ansible 的Playbook
    使用Python调用Ansible的Playbook作为一名经验丰富的开发者,我将帮助你了解如何使用Python调用Ansible的Playbook。这将帮助你自动化和简化部署过程,提高工作效率。整体流程下面是整个过程的流程图:步骤描述1安装Ansible2创建Ansible的Inventory文件3创建Ansibl......
  • 生成图片url地址 python
    生成图片URL地址的Python实现步骤作为一名经验丰富的开发者,我将教你如何使用Python来生成图片URL地址。下面是整个流程的步骤。步骤概览步骤描述1导入必要的库2定义图片文件路径3生成URL地址4输出URL地址现在我们将逐步进行说明,教你每一步需要做什么,......
  • 用Python实现2: 画出y=x,y=x2,y=x3并添加标题
    用Python实现2:画出y=x,y=x^2,y=x^3并添加标题在数据可视化中,绘制函数图像是一个常见的任务。Python中的matplotlib库提供了强大的绘图功能,可以轻松地绘制各种函数图像。本文将介绍如何使用Python和matplotlib来绘制y=x,y=x^2和y=x^3的函数图像,并为每个图像添加标题。准备工......
  • 用Python定义一个函数,它返回整数n从右边开始的第k个数字
    用Python定义一个函数,返回整数n从右边开始的第k个数字在编程中,我们经常需要从一个整数中获取特定位置的数字。其中一个常见的需求是返回一个整数n从右边开始的第k个数字。在本文中,我们将使用Python定义一个函数来实现这一需求,并通过代码示例进行演示。问题背景假设我们有一个整......
  • 自动化测试 | python | self说明
    1.从函数的语法上讲,self是形参,就可以是任意的变量名,只不过我们习惯性将这个形参写作self。 2.self是普通的形参,但是在调⽤的时候没有传递实参值,原因是,Python解释器在执⾏代码的时候,⾃动的将调⽤这个⽅法的对象传递给了self,即self的本质是对象。 3.......
  • python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
    python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了 本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。 01.python由来与发展介绍 02.项目开发流程   第一章markdown编辑器 01.markdown基本语法 02.Typora简介与安装......
  • Tesseract开源的OCR工具及python pytesseract安装使用
    一、介绍Tesseract是一款由Google赞助的开源OCR。pytesseract是python包装器,它为可执行文件提供了pythonicAPI。Tesseract已经有30年历史,开始它是惠普实验室的一款专利软件,在2005年后由Google接手并进一步开发和完善。Tesseract支持多种语言文字的检测和识别,包括中文、英......
  • Python的OCR工具pytesseract解决TesseractNotFoundError: tesseract is not installed
    pytesseract是基于Python的OCR工具,底层使用的是Google的Tesseract-OCR引擎,支持识别图片中的文字,支持jpeg,png,gif,bmp,tiff等图片格式。如何安装使用请看我的上一篇。在使用pytesseract打开图片是遇到没有找到文件解决pytesseract.pytesseract.TesseractNotFoundError:te......