Python 参数传递

本文将从以下几个方面对Python 参数传递做详细阐述:

一、参数传递的基础概念

Python 学习中,参数传递是一个必须掌握的重要概念。简单来说,参数传递是指在函数调用时将实际参数传递给形式参数的过程。

# 定义一个简单的函数,并传递参数
def greeting(name):
    print('Hello, ' + name + '!')

greeting('Tom')

在上面的例子中,我们定义了一个函数greeting,它接受一个参数name,并打印出”Hello, name!” 的结果。在函数调用时,我们传递了参数Tom,实际参数通过形式参数name传递到函数中。

二、Python 中参数传递的方式

Python 中存在两种参数传递的方式:传值和传引用。在 Python 中,对象分为可变对象和不可变对象,可变对象包含列表、字典等,不可变对象包含数字、字符串等。

1、传值

在 Python 中,传值就是将实际参数的值传递给形式参数的过程。对于不可变的数据类型,如数字、字符串、元组等,参数传递的方式是传值。这也就是说,在函数内对形参所做的修改,不会影响到函数外部的实参。

# 传递字符串作为参数的示例 
def change_string(str):
    str = 'Changed String'
    print('函数内值: ', str)

string = 'Hello, world!'
change_string(string)
print('函数外值: ', string)

在上面的代码中,我们定义一个函数change_string,它接受一个字符串类型的参数str,并在函数内部对str变量赋值。当我们调用函数change_string函数时,函数内部的str被赋值为’Changed String’。但是,函数外部的string仍然保留着原先的值’Hello, world!’,这说明传递的是参数的值,形参的修改并不会影响到实参。

2、传引用

在 Python 中,传引用就是将实际参数的引用传递给形式参数的过程。对于可变的数据类型,如列表、字典等,参数传递的方式是传引用。这就意味着如果在函数内修改了形参,实参也会受到影响。

# 传递列表作为参数的示例
def change_list(mylist):
    mylist.append([1,2,3,4])
    print('函数内值: ', mylist)

list = [10,20,30]
change_list(list)
print('函数外值: ', list)

在上面的代码中,我们定义一个函数change_list,它接受一个列表类型的参数mylist,并在函数内部对mylist执行了append操作。当我们调用函数change_list函数时,函数内部的mylist向原始列表中添加了一个包含4个数字的新列表。但是,函数外部的list也被修改了,它现在包含了4个元素:[10,20,30,[1,2,3,4]],这说明传递的是变量的引用,形参的修改会影响实参。

三、默认参数

在 Python 中,函数可以接受默认值作为参数,这些默认值可以是必需的或可选的。定义默认值后,函数参数可以在调用时不用传递任何值。

# 带有默认值的函数示例
def print_info(name, age=35):
    print('Name: ', name)
    print('Age: ', age)

print_info('Tom')
print_info('Jerry', 40)

在上面的代码中,我们定义了一个函数print_info,它包含两个参数:name和age。age参数具有默认值35,这意味着可以省略age参数的传递。在函数的第一次调用中,只传递了一个参数name,没有传递age参数,这时函数会使用默认值35。在第二次调用时,传递了两个参数,分别是name和age,这时函数使用传递的参数。

四、可变参数

在 Python 中,函数可以接受任意数量的参数,这些参数可以是位置参数、默认参数或关键字参数。使用可变参数,可以传递不同数量的参数,这对于编写灵活的函数非常有用。

1、位置参数

位置参数就是指不带任何额外符号或名称的参数。在函数中,可以使用*args来接受任意数量的位置参数。

# 使用位置参数的示例
def print_args(*args):
    print('传入的参数: ', args)

print_args('a','b','c')

在上面的代码中,我们定义了一个函数print_args,它使用*args以实现接受任意数量的位置参数。当我们调用函数print_args时,*args收集传入的所有参数并将其打印出来。

2、关键字参数

关键字参数就是指使用关键字传递的参数。关键字参数允许在函数调用时指定函数参数的名称,这会使代码更具可读性。在函数中,可以使用**kwargs来接受任意数量的关键字参数。

# 使用关键字参数的示例
def print_kwargs(**kwargs):
    print('传入的关键字参数: ', kwargs)

print_kwargs(a=1, b=2, c=3)

在上面的代码中,我们定义了一个函数print_kwargs,它使用**kwargs以实现接受任意数量的关键字参数。当我们调用函数print_kwargs时,**kwargs收集传入的所有关键字参数并将其打印出来。

3、混合参数

在函数中也可以混合使用位置参数、关键字参数和默认参数,但是位置参数必须在关键字参数的前面。

# 混合使用参数的示例
def print_people_info(name, age=35, *friends, **kwargs):
    print('Name: ', name)
    print('Age: ', age)
    print('Friends: ', friends)
    print('Other: ', kwargs)

print_people_info('Tom', 25, 'Bob', 'John', location='New York', job='Engineer')

在上面的代码中,我们定义了一个函数print_people_info,它包含一个位置参数name、一个默认参数age、一个可变参数friends以及一个关键字参数**kwargs。当我们调用函数print_people_info时,前两个参数是位置参数,后两个参数分别是可变参数和关键字参数。可变参数会收集传入的位置参数,而关键字参数会收集传入的所有关键字参数。

原创文章,作者:YYAPB,如若转载,请注明出处:https://www.506064.com/n/374248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
YYAPBYYAPB
上一篇 2025-04-27 15:27
下一篇 2025-04-27 15:27

相关推荐

  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29

发表回复

登录后才能评论