问题:
Python的函数定义中有两种特殊的情况,即出现*,**的形式。
如:def myfun1(username, *keys)或def myfun2(username, **keys)等。
解释:
* 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问。
**用来处理传递任意个有名字的参数,这些参数用dict来访问。*
应用:
#########################
# “*” 的应用
#########################
>>> def fun1(*keys):
... print "keys type=%s" % type(keys)
... print "keys=%s" % str(keys)
... for i in range(0, len(keys)):
... print "keys[" + str(i) + "]=%s" % str(keys[i])
...
>>> fun1(2,3,4,5)
输出以下结果:
keys type=
keys=(2, 3, 4, 5)
keys[0]=2
keys[1]=3
keys[2]=4
keys[3]=5
#########################
# “**” 的应用
#########################
>>> def fun2(**keys):
... print "keys type=%s" % type(keys)
... print "keys=%s" % str(keys)
... print "name=%s" % str(keys['name'])
...
>>>
>>> fun2(name="vp", age=19)
输出以下结果:
keys type=
keys={'age': 19, 'name': 'vp'}
name=vp
转载地址:http://blog.chinaunix.net/uid-22816738-id-4092548.html
相关推荐
- **定义可变参数**: - 在函数定义时,形参前加上星号`*`表示该参数为可变参数。例如,`def func(*args)`。 - 这样的函数可以接收任意数量的位置参数,所有传入的参数会被收集到一个元组`args`中。 - **调用带有...
在Python编程中,`*args` 和 `**kwargs` 是两个非常有用的语法特性,它们允许函数接收可变数量的参数。这些参数在函数定义时并不知道具体的数量,因此在需要处理不确定参数个数的情况时非常有用。本文将深入探讨这两...
2. **读取参数**:可以通过索引直接访问`sys.argv`中的元素。例如,`sys.argv[1]`代表第一个参数,`sys.argv[2]`代表第二个参数,依此类推。 3. **参数数量**:通常,我们需要处理不同数量的参数。可以通过`len(sys...
#### 二、Python环境搭建与使用 **知识点:** - **操作系统兼容性**:Python支持多种操作系统,包括Windows、Mac OS X、Linux等。 - **安装步骤**:书中详细介绍了不同操作系统下的Python安装方法。 **章节内容**...
本文实例分析了Python星号*与**用法。分享给大家供大家参考,具体如下: 1. 加了星号(*)的变量名会存放所有未命名的变量参数,不能存放dict,否则报错。 如: def multiple(arg, *args): print arg: , arg #...
- **特殊形式的参数**:讨论了默认参数、关键字参数等特殊的参数传递方式。 - **变量的作用域**:解释了局部变量和全局变量的概念,以及它们的作用范围。 - **递归函数**:通过具体例子说明了递归函数的定义和使用...
Python 3.8.10源码安装包是Python编程语言的一个特定版本,适用于学习Python的基础与高级概念,以及进行Python的移植工作。这个压缩包包含了Python 3.8.10的所有源代码,允许用户在不同的操作系统上编译和构建Python...
首先,我们要理解C++与Python交互的基础——Python的C API。Python提供了C API,允许C或C++程序直接调用Python的函数和模块,这为在C++中调用Python代码提供了可能。在这个例子中,"c++传递参数给python源码.rar"的...
1. **必需参数**: 必需参数是在定义函数时明确指定的参数,调用函数时必须按顺序提供这些参数。如果缺少任何一个必需参数,Python会抛出一个错误。例如: ```python def printme(str): print(str) printme(...
**Python实现WOA优化VMD参数** 在Python中,我们可以利用WOA来优化VMD的参数,如中心频率(central frequency, f)、调制指数(modulation index, α)等。首先,我们需要定义VMD函数,包括其内部的迭代过程和参数...
* Python 之函数的参数 * Python 之函数对象+函数嵌套 * Python 之名称空间与作用域 * Python 之闭包函数 * Python 之迭代器 * Python 之生成器 * Python 之三元表达式、生成式、生成器表达式 * Python 之面向过程...
本篇文章将深入探讨如何在MATLAB与Python之间进行参数的传递。 **一、MATLAB调用Python** 1. **`matlabengine`接口:** MATLAB提供了一个名为`matlabengine`的函数,可以创建Python引擎实例,从而在MATLAB中调用...
遗传算法是一种模拟自然选择和遗传机制的全局优化技术,它在解决复杂问题,如参数优化方面表现出色。在这个场景中,我们关注的是如何利用遗传算法优化变分模态分解(VMD)的参数。变分模态分解是信号处理领域的一种...
4. **命令行参数**: - Python程序可以通过命令行参数接收输入。例如,`hello_argv.py`程序可以接收命令行传入的参数,这些参数可以通过`sys.argv`列表获取,其中`sys.argv[0]`是脚本本身的名字。 5. **Python语言...
- **源程序编码**:讨论了Python源代码文件的编码方式,特别是在非英文环境中如何正确地处理字符集问题。 - **交互环境的启动文件**:解释了如何在启动Python交互环境时自动加载预设的脚本或配置文件。 ##### 2. ...
### Python2与Python3的主要区别 #### 一、性能差异 - **Python 3.0** 相较于 **Python 2.5** 在运行 pystone benchmark 的速度上慢约 30%。Guido van Rossum(Python 的创始人)认为 **Python 3.0** 在字符串处理...
- **Python第21课**:学习函数参数的不同类型及其使用方式。 - **Python第22课**:通过实例加深对函数的理解。 - **Python第23课**:深入学习条件语句`if`、`elif`、`else`的使用。 - **Python第24课**:掌握`if`...
《Python程序设计与算法基础教程》是一本全面介绍Python编程和算法基础知识的教材。它将教材、练习册和上机指导结合在一起,适用于初学者,旨在通过大量的实例和实际项目来帮助读者逐步掌握Python语言。该教程适用于...
- 解释了如何在Python中声明函数,包括参数的传递方式。 - **2.3 文档化函数** - 强调了为函数添加文档字符串的重要性,并给出了示例。 - **2.4 万物皆对象** - 讲述了Python中一切事物都是对象的概念,这是...