3

6.1 Python创建函数

Posted by 撒得一地 on 2016年5月15日 in python教程

函数是可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为,为应用程序提供了某种特定功能,并且代码可重用而且高度模块化。在Python中有很多内建函数,当然你也可以学会创建自己的函数。

Python内建函数

python系统中自带的一些函数就叫做内建函数,比如:print(),callable()等,还有一种是第三方函数,就是其它程序员编好的一些函数,共享给大家使用。比如 print() 函数:

>>> print("我是内建函数")
我是内建函数

python内建的 callable 函数可以用来判断函数是否可以调用,如:

>>> callable(print)
True
>>> callable(fun)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'fun' is not defined

注意 函数 callable 在 Python 3.0 中不再可用。需要使用表达式 hasattr(func,__call__)代替。

Python自定义函数

定义函数几个关键点:

1.函数名和括号
2.使用 def 关键字。参数应该放在函数名后面的括号内。
3.函数的第一个语句可以是一个可选的声明 – 文档字符串的函数或的docstring。
4.在每个函数的代码块开始用冒号(:)和缩进。
5.可以有 return 语句返回值,也可以没有 return 语句。

具体语法:

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

调用函数

调用函数很简单,和内建函数用法一样,函数名加上括号就可以调用函数了。如果有参数要记得传入参数。具体用法下面会介绍。

实例,创建一个名为 hello 的新函数,它可以返回一个将输入的参数作为名字的问候语,然后使用内建函数一样使用它:

>>> def hello(name):
...     return 'hello.'+name+"!"
...
>>> print(hello('world'))
hello.world!

函数加入注释

在函数定义里面,可以简单的进行声明,声明一个函数的具体用途,让后面使用该函数的人能更好的理解,可以加入注释(#开头),也可以直接写上字符串。如果在函数的开头写下字符串,它就会作为函数的一部分进行存储,这称为文档字符串。

>>> def printme(str):
...     "this is a new print function"
...     print(str)
...
>>> printme("123")
123

上面字符串 "this is a new print function" 就是对函数进行声明。这类注释可以按如下方式进行访问:

>>> printme.__doc__
'this is a new print function'

注意:__doc__是函数属性。属性名中的双下划线表示它是个特殊属性。

内建的 help 函数是非常有用的。在交互式解释器中使用它,就可以得到关于函数,包括文档字符串的信息,如:

>>> help(printme)
Help on function printme in module __main__:
printme(str)
    this is a new print function

return 语句

数学意义上的函数,总在计算参数后会返回点什么。Python的有些函数却并不返回任何东西。没有 return 语句但 return 后边没有跟任何值的函数不返回值:

>>> def test():
...     print("just print something")
...     return
...     print("这里不会被输出")
...
>>> test()
just print something

这里的 return 语句只起到结束函数的作用,可以看到第二个 print 语句被跳过。而且当函数没有返回值的时候,它们就返回 None,如:

>>> x = test()
just print something
>>> print(x)
None

上一篇:

下一篇:已是最新文章

相关推荐

3 Comments

Comments are closed. Would you like to contact the author directly?
网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.