WEB开发网
开发学院软件开发C语言 从C#到Python:3 函数及函数编程 阅读

从C#到Python:3 函数及函数编程

 2010-09-30 22:42:07 来源:WEB开发网   
核心提示: 3.2 函数的参数3.2.1 C#与Python在函数参数定义方面的差别 C#中方法的参数有四种类型:(1) 值参数不含任何修饰符(2) 引用型参数以ref 修饰符声明(Python中没有对应的定义方式)(3) 输出参数以out 修饰符声明(Python中不需要,因为函数可以有多个返回值)(4)

3.2  函数的参数3.2.1  C#与Python在函数参数定义方面的差别

C#中方法的参数有四种类型:

(1) 值参数不含任何修饰符

(2) 引用型参数以ref 修饰符声明(Python中没有对应的定义方式)

(3) 输出参数以out 修饰符声明(Python中不需要,因为函数可以有多个返回值)

(4) 数组型参数以params 修饰符声明

Python中函数参数的形式也有四种类型:

(1) f(arg1,arg2,...) 这是最常用的函数定义方式

(2) f(arg1=value1,arg2=value2,...,argN=valueN) 这种方式为参数提供了默认值,同时在调用函数时参数顺序可以变化,也称为关键字参数。

(3) f(*arg) arg代表了一个tuple,类似C#中的params修饰符作用,可以接受多个参数

(4) f(**arg) 传入的参数在函数内部是保存在名称为arg的dict中,调用的时候需要使用如f(a1=v1,a2=v2)的形式。

可以看出,Python函数参数定义与C#相比,最大的两个区别是支持关键字参数和字典参数。

3.29更新:根据JeffreyZhao提示,C# 4.0 已经支持命名参数(即关键字参数)和可选参数(即参数默认值),详情可见生鱼片blog上的:《C#4.0新特性:可选参数,命名参数,Dynamic》。在此向两位致谢。

3.2.2  关键字参数

关键字参数可以使我们调用含有很多参数、同时一些参数具有默认值的Python函数变得更简单,也是Python实现函数重载的一种重要手段(到类与对象部分再详细说这个问题)。下面的例子说明了如何定义和调用含关键字参数的函数(引自Guido van Rossum《Python入门》,包括后面的几个例子):

1 def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
2   print "-- This parrot wouldn't", action,
3   print "if you put", voltage, "Volts through it."
4   print "-- Lovely plumage, the", type
5   print "-- It's", state, "!"

上一页  1 2 3 4 5 6 7  下一页

Tags:Python 函数 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接