参考来源:Magnus Lie Hetland 《Python基础教程》
1. 自定义函数
def hello( name ): return 'Hello, ' + name + '!'
可以判断一个对象是不是函数:
callable( hello )
如果是函数,就会返回True,否则会返回False
2. 文档字符串 docstring
def square(x): 'Calculate the square of the number x‘ return x*x
其中的 'Calculate the square of the number x' 成为函数的一部分,可以用成员 __doc__ 调用
square.__doc__
3. 修改参数:字符串、数字变量等参数调用之后不变值,列表会变值。这和C++是完全一致的。
def try_to_change(n): n = 'Mr. Gumby' name = 'Mrs. Entity' try_to_change(name) name
调用之后,name的值仍为 'Mrs. Entity',所以字符串参数调用之后是值不变的(对应 C++ 中的形式参数)
def change(n): n[0] = 'Mr. Gumby' names = [ 'Mrs. Entity', 'Mrs. Thing' ] change(names) names
会显示 [ 'Mr. Gumby', 'Mrs. Thing' ],即列表作为参数,在函数调用之后值改变。
4. 关键字参数和默认值
def hello_3( greeting = 'Hello', name = 'World' ): print( '{}, {}!'.format(greeting, name) ) hello_3() hello_3('Hi', 'Johnny')
hello_3(name = 'Ann', greeting = 'Good Morning' )
会显示
'Hello, World'
'Hi, Johnny'
'Good Morning, Ann'
第一种是参数默认值(因为没有指定参数值),第二种是使用指定的参数,第三种是用关键字给参数,可以颠倒参数次序,并让调用语句更易读。