c# python3_从C#到Python —— 3 函数及函数编程

在C#中没有独立的函数存在,只有类的(动态或静态)方法这一概念,它指的是类中用于执行计算或其它行为的成员。在Python中,你可以使用类似C#的方式定义类的动态或静态成员方法,因为它与C#一样支持完全的面向对象编程。你也可以用过程式编程的方式来编写Python程序,这时Python中的函数与类可以没有任何关系,类似C语言定义和使用函数的方式。此外,Python还支持函数式编程,虽然它对函数式编程的支持不如LISP等语言那样完备,但适当使用还是可以提高我们工作的效率。

本章主要介绍在过程编程模式下Python中函数的定义和使用方法,关于在面向对象编程中如何使用函数,我们将在下一章再讨论。此外,我还会简要介绍Python中的函数编程功能。

3.1  函数的定义

函数定义是最基本的行为抽象代码,也是软件复用最初级的方式。Python中函数的定义语句由def关键字、函数名、括号、参数(可选)及冒号:组成。下面是几个简单的函数定义语句:

1 #-*- coding: utf-8 -*-2 #定义没有参数、也没有返回值的函数3 defF1():4 print'hello kitty!'5 #定义有参数和一个返回值的函数6 defF2(x,y):7 a=x+y8 returna9 #定义有多个返回值的函数,用逗号分割不同的返回值,返回结果是一个元组10 defF3(x,y):11 a=x/y12 b=x%y13 returna,b

可能你已经注意到了,Python定义函数的时候并没有约束参数的类型,它以最简单的形式支持了泛型编程。你可以输入任意类型的数据作为参数,只要这些类型支持函数内部的操作(当然必要时需要在函数内部做一些类型判断、异常处理之类的工作)。

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#相比,最大的两个区别是支持关键字参数和字典参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值