python 函数的参数定义及调用

参数定义:
1. 位置参数:
    这是熟悉的标准化参数,位置参数必须在调用函数中定义的准确顺序来传递,在没有默认参数的情况下,传入参数
    的精确数目必须和声明的数目一致。
  def foo(who, name):
    print(‘{0} is {1}‘.format(who, name)
  foo函数有两个位置参数,那么意味这foo的调用必须有两个参数,不能多也不能少
2. 默认参数:
  定义默认参数的如下:
  def func(posargs, defargs=dval, defargs2=dval2,...):
    ‘function_document_string‘
    unction_body_suite
  没个默认参数都紧跟着一个默认的赋值语句,如果在函数的调用中没有给默认参数传递值,函数会采用这个赋值来实现参数调用。
3. 可变长度参数:
  和常规函数明显不同,如果在函数的调用过程中需要处理可变数量的参数,由于参数的数目在函数的调用之前是未知的(甚至在运行期间,每次函数的调用参数的数目也是不同的)这个使用需要使用可变长度参数来定义函数。
 非关键字可变长度参数(元组)
  def func([formal_args],*args_tuple):
    ‘function_document_string‘
    function_body_suite
  星号操作符之后的形参将作为元组传递给函数。元组保存了所有传递过来的额外的参数。
  def tupleVarargs(arg1,arg2=‘defaultB‘,*theRest):
    print(‘formal arg 1:‘, arg1)
    print(‘formal arg 2:‘, arg2)
    for eachxtArg in theRest:
    print(‘another args:‘,eachxtarg)

 关键字变量参数(字典)
  为了区分关键字参数和非关键字参数使用××
  def func([formal_args], [*vargst], [**vargsd]):
    ‘function_document_string‘
    function_body_suite
  这样传进来的参数都是成对的,字典中的键为参数名值相应的为参数值。

 1 def newfoo(formalarg1, formalarg2=‘default‘, *nnameargs, **nameargs):
 2     print(‘formal 1 :‘,formalarg1)
 3     print(‘formal 2 :‘, formalarg2)
 4     for nname in nnameargs:
 5         print(‘no key name args :‘, nname)
 6     for kname in nameargs.keys():
 7         print(‘key name args {0}: {1}‘.format(kname, nameargs[kname]))
 8
 9 # 普通的方式调用函数
10 newfoo(10, 20, 30, 40, fifty=50, sixty=60)
11
12 # 将非关键字参数和关键字参数通过× 和 ××的方式传递
13 newfoo(10, 20, *(30, 40), **{‘fifty‘:50, ‘sixty‘:60})
14
15 # 在函数之外来构造元组和字典进行参数传递
16 aTuple = (30, 40)
17 aDict = {‘fifty‘:50, ‘sixty‘:60}
18 newfoo(10, 20, *aTuple, **aDict)

传递参数:
  其实在传递参数的时候可以根据定义函数参数的形式进行反向推导来传递

1 def add(a, b):
2     return a+b
3
4
5 print(add(1, 2))
6 print(add(b=2, a=1))
7 print(add(*(1, 2)))
8 print(add(**{‘a‘:1, ‘b‘:2}))

时间: 2024-12-28 04:05:14

python 函数的参数定义及调用的相关文章

Python函数的基本定义和调用以及内置函数

首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解下函数的概念,就是你编写了一些语句,为了方便使用这些语句,把这些语句组合在一起,给它起一个名字.使用的时候只要调用这个名字,就可以实现语句组的功能了. 语法如下: # 定义方式 : def functionname([parameterlist]): functionname:函数名 paramet

Python函数学习-参数类型

函数的参数 在定义Python函数时可定义形参,这些参数在调用时候才能确定具体的值,由函数的调用者负责为行参传入参数值 函数的参数类型 一. 位置参数 也叫必传参数,顺序参数,是最重要的,也是必须在调用函数时明确提供的参数!位置参数必须按先后顺序,一一对应,个数不多不少的传递! 说明:a,b,c是函数add的行参,没有具体的值,只有在add(x,y,z)是才被传入值,a=x=1,b=y=2,c=z=3, 其中x,y,z叫做实参,add(4,5,6,7),add(5,7)均为错误调用 二.关键字参

3.4 for实现循环结构 --- 3.6 函数文件的定义与调用

3.4 格式不要括号,最后有end for 循环变量 = 表达式1:表 2:表 3 表1:初值     表2:步长      表3:终值 求圆周率:π/4=1 - 1/3 + 1/5 -1/7+...+(-1)^(n+1)*(1/2*n-1) y = 0; g = -1; n = input('n = ?'); for 1:n g = -g; y = y + g *1/(2 * i - 1); end pai = 4 * y 或者 n = input ('n = ?'); x = 1 : 2 :

shell - 函数、数组定义与调用

#!/bin/bash # returning an array value function arraydblr() { local origarray local newarray local elements local i origarray=(`echo "[email protected]"`) newarrray=(`echo "[email protected]"`) elements=$[ $# -1 ] for((i=0;i<=$eleme

JavaScript作用域、上下文环境、函数对象的定义与调用、匿名函数的定义与调用、闭包

提到闭包总给人很高深的感觉,网上的例子也数不胜数.但是我发现相当一部分并不容易理解.根据我的观察,是因为这些例子把标题中提到的概念糅杂在了一起,往往越看越糊涂.所以我希望化整为零,拆成简单例子来解释. 1.先看作用域: JavaScript作用域只有两种--全局作用域和函数内作用域,没有代码块作用域.示例: function loop(){ for(var i=0;i<5;i++){ //doSomething; } alert(i); } loop(); //执行函数结果为5. 尽管变量i已经

python函数使用参数技巧笔记

1.对参数的修改 正常使用 元组,字符串,int类型不可变,作为参数传入,也不会更改本身的值 列表,字典是可变数据结构,作为参数传入,如果在函数执行时,本身值会被函数内的操作更改 例外情况 如果想修改不可变数据结构:只能通过函数返回的值重新赋值. 如果想不更改可变数据结构的参数:只能复制改结构,name[:] 2.关键字参数和默认值 参数的传递,默认根据函数定义时的位置,也可以手动指定: def hello(greeting,name):     print "%s, %s!" %(g

Python中函数的参数定义和可变参数

转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944416.html  简洁易懂啊,好文 刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函数定义,我们都知道,下面的代码定义了一个函数funcA def funcA():  pass    显然,函数funcA没有参数(同时啥也不干:D

(一)Python入门-5函数:01函数的基本概念-内存分析-函数的分类-定义和调用

一:函数介绍 函数是可重用的程序代码块.函数的作用,不仅可以实现代码的复用,更能实现代码的 一致性.一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现. 在编写函数时,函数体中的代码写法和我们前面讲述的基本一致,只是对代码实现了封 装,并增加了函数调用.传递参数.返回计算结果等内容. 函数基本概念: 1. 一个程序由一个个任务组成:函数就是代表一个任务或者一个功能. 2. 函数是代码复用的通用机制. 二:Python函数的分类 Python中函数分为如下几类: 1. 内置函数

Python中将函数作为另一个函数的参数传入并调用

在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除,以function(*args, **kwargs)进行替代,所以也不应该再使用apply方法 示例代码: def func_a(func, *args, **kwargs): print(func(*args, **kwargs)) def func_b(*args): return args i