`

Python中函数的参数传递与可变长参数

 
阅读更多

 

1.Python中也有像C++一样的默认缺省函数

1 def foo(text,num=0):
2     print text,num
3
4 foo("asd")  #asd 0
5 foo("def",100)  #def 100

定义有默认参数的函数时,这些默认值参数位置必须都在非默认值参数后面。

调用时提供默认值参数值时,使用提供的值,否则使用默认值。

2.Python可以根据参数名传参数

1 def foo(ip,port):
2     print "%s:%d" % (ip,port)
3
4 foo("192.168.1.0",3306) #192.168.1.0:3306
5 foo(port=8080,ip="127.0.0.1")   #127.0.0.1:8080

 4行,没有指定参数名,按照顺序传参数。

 5行,指定参数名,可以按照参数名称传参数。

3.可变长度参数

1 #coding:utf-8       #设置python文件的编码为utf-8,这样就可以写入中文注释
2 def foo(arg1,*tupleArg,**dictArg):
3     print "arg1=",arg1  #formal_args
4     print "tupleArg=",tupleArg  #()
5     print "dictArg=",dictArg    #[]
6 foo("formal_args")

上面函数中的参数,tupleArg前面“*”表示这个参数是一个元组参数,从程序的输出可以看出,默认值为()dicrtArg前面有“**”表示这个字典参数(键值对参数)可以把tupleArgdictArg看成两个默认参数。多余的非关键字参数,函数调用时被放在元组参数tupleArg中;多余的关键字参数,函数调用时被放字典参数dictArg中。

 下面是可变长参数的一些用法:

复制代码

 1 #coding:utf-8       #设置python文件的编码为utf-8,这样就可以写入中文注释
 2 def foo(arg1,arg2="OK",*tupleArg,**dictArg):
 3     print "arg1=",arg1
 4     print "arg2=",arg2
 5     for i,element in enumerate(tupleArg):
 6         print "tupleArg %d-->%s" % (i,str(element))
 7     for  key in dictArg:
 8         print "dictArg %s-->%s" %(key,dictArg[key])
 9
10 myList=["my1","my2"]
11 myDict={"name":"Tom","age":22}
12 foo("formal_args",arg2="argSecond",a=1)
13 print "*"*40
14 foo(123,myList,myDict)
15 print "*"*40
16 foo(123,rt=123,*myList,**myDict)

复制代码

输出为:

从上面的程序可以看出:

(1)如代码第14行。

元组对象前面如果不带“*”、字典对象如果前面不带“**”,则作为普通的对象传递参数。

多余的普通参数,在foo(123,myList,myDict)中,123赋给参数arg1myList赋给参数arg2,多余的参数myDict默认为元组赋值。

 

(2)如代码第16行。

参数中如果使用“*”元组参数或者“**”字典参数,这两种参数应该放在参数列表最后。并且“*”元组参数位于“**”字典参数之前。

关键字参数rt=123,因为函数foo(arg1,arg2="OK",*tupleArg,**dictArg)中没有rt参数,所以最后也归到字典参数中。

 

来自 <https://www.cnblogs.com/xudong-bupt/p/3833933.html>

 

分享到:
评论

相关推荐

    Python程序设计:函数参数.pptx

    Python的函数使用非常灵活,除了正常定义的必选参数外,还可以使用关键字参数、默认参数、可变参数,使函数通过定义出来的接口,通过参数设置,简化调用者的代码。 必须参数,即函数调用时必须要传的参数,下面进行...

    Python中函数的参数传递与可变长参数介绍

    1.Python中也有像C++一样的默认缺省函数 复制代码 代码如下: def foo(text,num=0):  print text,num foo(“asd”) #asd 0 foo(“def”,100) #def 100 定义有默认参数的函数时,这些默认值参数 位置必须都在非...

    深入理解python中函数传递参数是值传递还是引用传递

    在探讨Python函数传递参数的方式时,很多人会陷入“值传递”与“引用传递”的概念之中。实际上,这两种说法在Python中并不完全适用,因为Python有自己的特殊机制来处理参数传递。本文将通过具体的代码示例和内存地址...

    向python脚本传递参数(例子)

    ### 向Python脚本传递参数知识点详解 在Python编程中,能够从命令行接收参数是一项非常实用的功能。本文将深入探讨如何使用`sys.argv`来接收命令行参数,并通过一个具体的示例——过滤文本文件中的特定关键字——来...

    Python中函数参数设置及使用的学习笔记

    在Python中,函数参数通过赋值的方式传递。当函数被调用时,实际上是在共享对象的引用。这种特性对于不可变对象(如整数)来说,其在函数内部的任何变化都不会影响到原始对象;但对于可变对象(如列表),则有可能...

    python 通过可变参数计算n个数的乘积方法

    在Python中,可变参数是一个非常强大的特性,它允许函数接受不定数量的参数。这可以通过在函数定义中使用星号`*`前缀来实现。 - **定义可变参数**: - 在函数定义时,形参前加上星号`*`表示该参数为可变参数。例如...

    TDDOWNLOAD\Perl 与 Python 之间的一些异同

    - **元组(Tuples)**:不可变的列表,一旦创建后不能修改。 - **字典(Dictionaries)**:与Perl的哈希类似,基于键值对的集合,支持快速查找和更新操作。 ### 结论 Perl和Python各有优势,Perl在文本处理、...

    python参数魔法:可变参数与关键字参数深度解析

    ### Python参数魔法:可变参数与关键字参数深度解析 Python作为一种高级编程语言,在设计之初就致力于简化编程工作,提升开发效率。它所拥有的特点,如动态类型系统、自动内存管理、大型标准库以及开放源代码等,都...

    深入掌握Python中函数的关键字参数处理

    本文将详细介绍如何在Python函数中处理关键字参数,包括如何定义接受关键字参数的函数、如何在函数中使用**kwargs收集未明确命名的关键字参数,以及如何利用这些参数进行复杂的数据处理。 关键字参数是Python函数的...

    Python函数中参数是传递值还是引用详解

    ### Python函数中参数是传递值还是引用详解 在探讨Python函数参数传递机制之前,我们首先需要理解Python中变量与对象的关系。不同于C/C++等语言,Python中的变量更像是对象的引用或标签,而不是一个单独的内存空间...

    浅谈Python中的可变与不可变数据类型.pdf

    而可变与不可变类型是Python中两种截然不同的数据类型。理解这两种类型的特性对于编写高效且正确的Python程序至关重要。 首先,可变类型(Mutable types)指的是对象的内容可以被修改,而对象的内存地址不变。...

    Python中的函数(课件)

    4. **可变长度参数**:允许传递任意数量的位置参数(*args)或关键字参数(**kwargs)。 例如,一个带有默认值参数的函数: ```python def greet(name, greeting='Hello'): print(greeting, name) greet('Alice'...

    简单谈谈Python中函数的可变参数

    首先,我们需要明确Python函数参数的四种类型: 1. 必选参数:这是函数定义时必需的参数,没有默认值,调用函数时必须提供。 2. 默认参数:在定义函数时,可以为参数提供默认值,如果调用时未提供该参数,将使用...

    Python实现接受任意个数参数的函数方法

    在Python编程中,函数可以接受可变数量的参数,这一特性使得函数更加灵活,能够处理不确定数量的输入数据。本文将介绍如何在Python中实现接受任意个数参数的函数,并解释其工作原理。 首先,Python提供了一种简单的...

    Python函数中的可变长参数详解

    本文将深入探讨Python函数中的可变长参数,即那些允许函数接受不确定数量参数的功能。 首先,让我们了解Python函数参数的三种基本类型: 1. 位置参数:这是最基础的参数类型,调用函数时按照顺序传入值,函数定义...

    详解Python函数可变参数定义及其参数传递方式

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1、 func(*args)  传入的参数为以元组形式存在args中,如: def func(*args): print args &gt;&gt;&gt; func(1,2,3) (1, 2, 3) &gt;&gt;...

    Python函数.md

    ##### 3、可变长参数 - **位置可变参数**:使用`*args`形式来接收任意数量的位置参数,并将它们作为元组传递给函数。 ```python def sum_2(*x_list): n = 0 for i in x_list: n += i return n sum_2(3, 4, ...

    Python可变参数*args和**kwargs用法实例小结

    总结,`*args` 和 `**kwargs` 是Python中处理可变参数的强大工具,它们使得函数更具灵活性和可扩展性,尤其在处理动态参数或者需要将参数传递给其他函数的场合,显得尤为重要。了解并熟练掌握这两个概念,能让你在...

    Python函数可变参数定义及其参数传递方式实例详解

    本文实例讲述了Python函数可变参数定义及其参数传递方式。分享给大家供大家参考。具体分析如下: python中 函数不定参数的定义形式如下: 1、func(*args) 传入的参数为以元组形式存在args中,如: def func(*args):...

Global site tag (gtag.js) - Google Analytics