python学习笔记——基础篇(3):函数的定义

来源:互联网 发布:java创建日志文件 编辑:程序博客网 时间:2024/06/07 18:27

python学习笔记——基础篇(3):函数的定义

该系列用于记录自己学习python的过程。

前言

一个函数是实现一定功能的,可复用的代码块。函数可以实现编程的模块化,可以大大提高代码的复用性。
python内置了很多函数(built_in functions),如print, open, 同时,我们也可以自己定义函数。

自定义函数

用户自定义函数需要遵循以下规则:

  1. 函数定义以def开头,后面紧跟函数名,以及一个小括号。
  2. 所有输入参数都要放在这个小括号里面。
  3. 函数的第一行注释是可选的,他将作为该函数的说明文档。
  4. 代码块要以冒号开始,并有相对于def的缩进(四个空格)。
  5. 函数可以使用return返回一个表达式,也可以单纯表示函数结束。

    语法

def functionname( parameters ):   "function_docstring"   function_suite   return [expression]

函数的参数是有序的,输入参数需要和定义的参数列表顺序一致。

函数的调用

在函数定义可见的位置直接使用函数名调用。如下:

#!/usr/bin/python# Function definition is heredef printme( str ):   "This prints a passed string into this function"   print str   return;# Now you can call printme functionprintme("I'm first call to user defined function!")printme("Again second call to the same function")

你应该看到如下输出:

I'm first call to user defined function!Again second call to the same function

传参形式,值 or 引用?

学习c++的programmer应该都知道,c++中参数传递分为值传递和引用传递两种形式,那么python的参数传递方式是哪一种呢?
事实上,python的参数传递是值传递和参数传递的一种综合,在参数是不可变对象(数字,字符,元组)时,相当于值传递,在参数是可变对象(列表,字典)时,相当于引用传递。

>>> def test(a):        a=a+1;        print "a:%d"% a;>>> a=10;>>> test(a)a:11>>> a10

上面向函数test中传入一个数,是一个不可变对象,相当于值传递。

>>> def test_list(l):        l.append("test");>>> l=list();>>> l[]>>> test_list(l)>>> l['test']

这里向函数test_list传递了一个列表,是一个可变对象,相当于引用传递。

参考:

  1. learn python in a hard way
  2. python functions
0 0
原创粉丝点击