动态参数是样很神奇的东西。我写了下面一段代码:
python 代码
- class Person:
- def __init__(self,*pros,**attrs):
- self.name = "jeff"
- self.pros = pros
- for (key,value) in attrs.items():
- stm = "self.%s = \"%s\""% (key,value)
- exec(stm)
-
- if __name__ == "__main__":
- jeff = Person(1,2,3,sex="boy")
- print jeff.pros
- print jeff.sex
- print dir(jeff)
打印出来的内容是
(1, 2, 3)
boy
['__doc__', '__init__', '__module__', 'name', 'pros', 'sex']
简单解释一下:
参数以一个*号开头的代表着一个任意长度的数组,可以接收连续一串参数,如上面代码里传的是1,2,3,你可以更多。
参数以两个*号开头的代表着一个字典,参数的形式是“key=value”,接受连续任意多个参数。
在函数内,我们就可以把前者当作一个元组来处理,打印结果看得出来是一个元组。注意,调用方法是参数不定长,而在方法执行的时候,长度已定了,所以是元组。同时,我们可以把后者当作一个字典来处理。
示 例代码里使用可变长参数实现了一个类属性的个性化定制,对于一个Person类,你可以通过传入字典类型的参数使这个类有更多原来不存在的属性,实现方法 是用了exec方法,目前只能通过字符串的参数。这里只是展示了可变参数的使用及exec的神奇力量。真正的函数不应该允许任意用户自定义属性的,可变参 数的目的是为定义函数方便及调用函数时,参数传入形式更自由而已。
分享到:
相关推荐
本文实例讲述了python动态参数用法。分享给大家供大家参考。具体分析如下: 先来看一段代码: class Person: def __init__(self,*pros,**attrs): self.name = "jeff" self.pros = pros for (key,value) in ...
python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数
#### 1.1 *args 位置参数动态传参 在 Python 中,如果希望函数能够接收不定数量的位置参数,可以使用 `*args` 的形式。这使得函数可以接受任意数量的位置参数,并将它们作为元组传递。 ```python def chi(*food): ...
在本案例中,我们主要探讨如何使用Python编程语言,特别是数据可视化库matplotlib,来创建一个动态的柱状图,展示1959年至2018年期间各国人口的变化情况。我们将通过分析提供的文件和标签来揭示这个过程的关键知识点...
Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被人们用于独立的、大型项目的开发和设计 Python解释器易于扩展,...
### 向Python脚本传递参数知识点详解 在Python编程中,能够从命令行接收参数是一项非常实用的功能。本文将深入探讨如何使用`sys.argv`来接收命令行参数,并通过一个具体的示例——过滤文本文件中的特定关键字——来...
python微分方程拟合求解参数
Python的函数使用非常灵活,除了正常定义的必选参数外,还可以使用关键字参数、默认参数、可变参数,使函数通过定义出来的接口,通过参数设置,简化调用者的代码。 必须参数,即函数调用时必须要传的参数,下面进行...
在实际开发中经常需要对前端传递的多个参数进行不为空校验,可以使用python提供的all()函数 if not all([arg1, arg2, arg3]): # 当 arg1, arg2, arg3都不为空时all函数返回true return jsonify(errno=RET.PARAMERR...
### Python命令行参数详解 在Python编程中,处理命令行参数是常见的需求,尤其是在脚本编写和工具开发中。Python提供了多种内置模块来处理这一需求,其中`getopt`和`optparse`是最为广泛使用的两种。然而,在...
本篇文章将深入探讨Python中函数参数的四种类型:必需参数、关键字参数、默认参数和不定长参数。 1. **必需参数**: 必需参数是在定义函数时明确指定的参数,调用函数时必须按顺序提供这些参数。如果缺少任何一个...
本文描述了利用Python语言开发一款能够进行爆破参数动态优化计算的软件。该软件集成了多个计算功能,如装药量计算、衰减系数计算和振速预测。 2. 爆破工程与安全: 20世纪以来,爆破技术在多种建设活动中得到了广泛...
《基于Python爆破参数动态优化软件开发应用》 在当今的IT行业中,Python语言因其简洁易读、丰富的库支持和强大的数据处理能力而备受青睐。本项目“基于Python爆破参数动态优化软件开发应用”正是利用了Python的强大...
使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。...目的:帮助理解函数的默认参数和关键参数在Python中的具体使用。
Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被人们用于独立的、大型项目的开发和设计 Python解释器易于扩展,...
这个名为"python写的坐标转换程序"的项目专注于使用Python编程语言实现坐标转换功能,特别是针对北京54坐标系。北京54坐标系是中国国内广泛使用的大地坐标系统,而布尔莎模型(Bursa-Wolf Model)是一种常用于大地...
在Python中实现遗传算法优化VMD参数,通常包括以下几个步骤: 1. **编码**:将VMD的参数(如K、α)编码为个体的基因串,例如用整数或浮点数表示。 2. **初始化种群**:随机生成一定数量的个体(每个个体代表一组...
本文将详细探讨如何在C++中传递参数给Python源码,以实现两者之间的协同工作。 首先,我们要理解C++与Python交互的基础——Python的C API。Python提供了C API,允许C或C++程序直接调用Python的函数和模块,这为在...