`
被触发
  • 浏览: 34893 次
文章分类
社区版块
存档分类
最新评论

Python中函数定义的关键参数问题

 
阅读更多
近来,看了看Python这种强大的脚本语言,细细的试了试,感觉还是蛮好用的,怪不得大家都用来进行科学计算什么的,虽然是C语言实现的,但是和C语言还是存在蛮多的差别的。

函数是各种语言中一般都会包含的,Python的函数声明和定义是在一起的,其中和C++有一定的相似性就是支持默认参数等特性。
函数定义的基本形式如下:

点击(此处)折叠或打开
def MyFunc(args):
    'this doc string'
    function_implement
基本的形式中包含函数名和参数,以及doc字符串,最后就是实现部分。

一般的语言都需要按照自己定义的顺序赋值实现参数的传递,但是在Python中支持调用时的关键参数,所谓的关键参数就是在调用的时候,对参数名进行无序的赋值,这时候解释器会自动完成参数的对应操作。

点击(此处)折叠或打开
def myFunc(args1,args2,args3)
    function_implement
本来调用的过程应该是myFunc('abc',10,'cdf'),采用关键参数的方式进行调用则可以按如下的形式进行:
myFunc(args2=10,args3='cdf',args1='abc')。
从上面的定义可知,调用的过程是一个无序的过程,这个无序就是通过关键参数的形式实现的。这时候解释器会根据args1,args2,args3的值自动调整参数。
对于不定参量的函数实现过程中如何实现关键变量呢?
首先我们已知元组和字典的函数定义形式如下:

点击(此处)折叠或打开
基于元组的形式:
def myFunc(formal_args1,formal_args2,*tupleArgs)
基于字典的形式:
def myFunc(formal_args1,formal_args2,**dictArgs)
这两种方法都可以解决不定参量函数的问题。
比如myFunc(formal_args1,formal_args2,*tupleArgs),
当输入的参数个数大于2个时,多于出来的参数就被当做元组的一部分,这样也就实现了所有参数的传递过程
比如myFunc(formal_args1,formal_args2,'args3',args4,args5),这时候参数'args3',args4,args5就是元组参数的一部分。即'args3',args4,args5构成一个元组。

但是这种方式不能解决下面的形式:
myFunc(formal_args1,formal_args2,c='keyArgs'),这种函数是非常重要的一种,因为有时候程序需要参数的设置,我们可以将c='keyArgs'看成一对键值问题,c可以作为键,而'keyArgs'作为值,这时也就可以采用字典的形式实现了带有关键字的不定参数函数问题。也就是定义def myFunc(formal_args1,formal_args2,**dictArgs),然后调用myFunc(formal_args1,formal_args2,c='keyArgs')。
分享到:
评论

相关推荐

    python随机数的产生及函数定义关键参数详解.docx

    python随机数的产生及函数定义关键参数详解.docx

    python随机数的产生及函数定义关键参数详解(可编辑).docx

    python随机数的产生及函数定义关键参数详解(可编辑).docx

    Python函数的定义方式与函数参数问题实例分析

    本文实例讲述了Python函数的定义方式与函数参数问题。分享给大家供大家参考,具体如下: 涉及内容: 函数的定义方式 函数的文字描述 空操作语句 位置参数 默认参数 关键参数 可变长度参数 函数的定义方式:...

    python函数参数(必须参数、可变参数、关键字参数)

    #python中的函数定义,使用和传参 ###------------------- 必要参数 ------------------------------------- 必要参数,即函数调用时必须要传的参数, #下面进行举例说明 def helloWorld(a): print('输出:hello'...

    Python魔法:函数的定义与巧妙运用

    函数是编程中的关键概念之一,它允许您将...在Python中,您可以使用def语句来定义函数,这些函数可以接受参数并返回结果。通过使用函数,您可以更好地组织代码,提高可读性,减少重复工作,以及更容易调试和维护代码。

    彻底搞懂python函数

    关键参数(实参)4.可变长度参数(形参)四、传递参数时的序列解包(实参) 一、函数定义与调用基本语法 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复...

    Python中文手册

    函数 <br>简介 <br> 定义函数 <br>函数形参 <br> 使用函数形参 <br>局部变量 <br> 使用局部变量 <br> 使用global语句 <br>默认参数值 <br> 使用默认参数值 <br>关键参数 ...

    Python关键字及可变参数*args,**kw原理解析

    使用可变参数可以很好解决该问题,注意可变参数在函数定义不能出现在特定参数和默认参数前面,因为可变参数会吞噬掉这些参数。 def report(name, *grades): total_grade = 0 for grade in grades: total_grade ...

    以python库 的形式 实现 NSGA-II算法_python_代码_下载

    在question.py中定义。 用于定义多目标问题。 论据: objectives:函数列表,表示目标函数。 num_of_variables: 一个整数,代表变量的个数。 variables_range:两个元素的元组列表,表示每个变量的下限和上限。 ...

    Python语言程序设计PPT课件.zip

    第5章 Python函数与模块。有些经常用到的能实现特定功能的代码块,我们总是不希望每次用到时都重写一遍,甚至不希望复制一遍,但又想重复使用。Python里这些经常重用的代码块以函数(Function)的形式被定义,每一次...

    Python之 函数的定义,调用,传递实参,使用位置实参和关键字实参,显示函数,有返回值的函数,将函数与列表,字典,while,if结合,导入模块

    Python之 函数的定义,调用,传递实参,使用位置实参和关键字实参,显示函数,有返回值的函数,将函数与列表,字典,while,if结合,导入模块 注意:以下代码均可正常运行,下附有运行实现代码,以及导入的模块 代码...

    简明python教程(chm)

    在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. ...

    Python语言程序设计习题答案.zip

    第5章 Python函数与模块。有些经常用到的能实现特定功能的代码块,我们总是不希望每次用到时都重写一遍,甚至不希望复制一遍,但又想重复使用。Python里这些经常重用的代码块以函数(Function)的形式被定义,每一次...

    Python核心编程第二版

     4.6.5 Python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

    python cookbook(第3版)

    7.5 定义有默认参数的函数 7.6 定义匿名或内联函数 7.7 匿名函数捕获变量值 7.8 减少可调用对象的参数个数 7.9 将单方法的类转换为函数 7.10 带额外状态信息的回调函数 7.11 内联回调函数 7.12 访问闭包中...

    简明python教程

    在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. 关于...

    Python核心编程第二版(ok)

     4.6.5 Python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     4.6.5 python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     4.6.5 python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

    python简明教程.chm

    在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. ...

Global site tag (gtag.js) - Google Analytics