`
我想我是海
  • 浏览: 214808 次
社区版块
存档分类
最新评论

python的动态参数

阅读更多
动态参数是样很神奇的东西。我写了下面一段代码:
python 代码
 
  1. class Person:  
  2.  def __init__(self,*pros,**attrs):  
  3.    self.name = "jeff"  
  4.   self.pros = pros  
  5.  for (key,value) in attrs.items():  
  6.   stm = "self.%s = \"%s\""% (key,value)  
  7.   exec(stm)  
  8.   
  9. if __name__ == "__main__":  
  10.  jeff = Person(1,2,3,sex="boy")  
  11.   print jeff.pros  
  12.  print jeff.sex  
  13.  print dir(jeff)  

打印出来的内容是
(1, 2, 3)
boy
['__doc__', '__init__', '__module__', 'name', 'pros', 'sex']

简单解释一下:
参数以一个*号开头的代表着一个任意长度的数组,可以接收连续一串参数,如上面代码里传的是1,2,3,你可以更多。
参数以两个*号开头的代表着一个字典,参数的形式是“key=value”,接受连续任意多个参数。
在函数内,我们就可以把前者当作一个元组来处理,打印结果看得出来是一个元组。注意,调用方法是参数不定长,而在方法执行的时候,长度已定了,所以是元组。同时,我们可以把后者当作一个字典来处理。

示 例代码里使用可变长参数实现了一个类属性的个性化定制,对于一个Person类,你可以通过传入字典类型的参数使这个类有更多原来不存在的属性,实现方法 是用了exec方法,目前只能通过字符串的参数。这里只是展示了可变参数的使用及exec的神奇力量。真正的函数不应该允许任意用户自定义属性的,可变参 数的目的是为定义函数方便及调用函数时,参数传入形式更自由而已。
分享到:
评论

相关推荐

    python动态参数用法实例分析

    本文实例讲述了python动态参数用法。分享给大家供大家参考。具体分析如下: 先来看一段代码: class Person: def __init__(self,*pros,**attrs): self.name = "jeff" self.pros = pros for (key,value) in ...

    python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数.txt

    python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数python 函数的动态参数

    Python动态参数/命名空间/函数嵌套/global和nonlocal

    #### 1.1 *args 位置参数动态传参 在 Python 中,如果希望函数能够接收不定数量的位置参数,可以使用 `*args` 的形式。这使得函数可以接受任意数量的位置参数,并将它们作为元组传递。 ```python def chi(*food): ...

    Python动态柱状图案例——人口变化动态图

    在本案例中,我们主要探讨如何使用Python编程语言,特别是数据可视化库matplotlib,来创建一个动态的柱状图,展示1959年至2018年期间各国人口的变化情况。我们将通过分析提供的文件和标签来揭示这个过程的关键知识点...

    Python 缺省参数-指定函数缺省参数的默认值

    Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被人们用于独立的、大型项目的开发和设计 Python解释器易于扩展,...

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

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

    python微分方程拟合求解参数

    python微分方程拟合求解参数

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

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

    python 多个参数不为空校验方法

    在实际开发中经常需要对前端传递的多个参数进行不为空校验,可以使用python提供的all()函数 if not all([arg1, arg2, arg3]): # 当 arg1, arg2, arg3都不为空时all函数返回true return jsonify(errno=RET.PARAMERR...

    python 命令行参数

    ### Python命令行参数详解 在Python编程中,处理命令行参数是常见的需求,尤其是在脚本编写和工具开发中。Python提供了多种内置模块来处理这一需求,其中`getopt`和`optparse`是最为广泛使用的两种。然而,在...

    Python语言基础:函数的参数.pptx

    本篇文章将深入探讨Python中函数参数的四种类型:必需参数、关键字参数、默认参数和不定长参数。 1. **必需参数**: 必需参数是在定义函数时明确指定的参数,调用函数时必须按顺序提供这些参数。如果缺少任何一个...

    基于Python爆破参数动态优化软件开发应用.pdf

    本文描述了利用Python语言开发一款能够进行爆破参数动态优化计算的软件。该软件集成了多个计算功能,如装药量计算、衰减系数计算和振速预测。 2. 爆破工程与安全: 20世纪以来,爆破技术在多种建设活动中得到了广泛...

    基于Python爆破参数动态优化软件开发应用.zip

    《基于Python爆破参数动态优化软件开发应用》 在当今的IT行业中,Python语言因其简洁易读、丰富的库支持和强大的数据处理能力而备受青睐。本项目“基于Python爆破参数动态优化软件开发应用”正是利用了Python的强大...

    Python中函数的默认值参数和关键参数的使用示例

    使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。...目的:帮助理解函数的默认参数和关键参数在Python中的具体使用。

    Python 函数参数和返回值的作用

    Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被人们用于独立的、大型项目的开发和设计 Python解释器易于扩展,...

    python写的坐标转换程序

    这个名为"python写的坐标转换程序"的项目专注于使用Python编程语言实现坐标转换功能,特别是针对北京54坐标系。北京54坐标系是中国国内广泛使用的大地坐标系统,而布尔莎模型(Bursa-Wolf Model)是一种常用于大地...

    遗传算法优化变分模态分解参数(VMD)python

    在Python中实现遗传算法优化VMD参数,通常包括以下几个步骤: 1. **编码**:将VMD的参数(如K、α)编码为个体的基因串,例如用整数或浮点数表示。 2. **初始化种群**:随机生成一定数量的个体(每个个体代表一组...

    c++传递参数给python源码.rar

    本文将详细探讨如何在C++中传递参数给Python源码,以实现两者之间的协同工作。 首先,我们要理解C++与Python交互的基础——Python的C API。Python提供了C API,允许C或C++程序直接调用Python的函数和模块,这为在...

Global site tag (gtag.js) - Google Analytics