学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心。我们使用函数可以增加程序的可读性。自定义函数时使用关键字def 函数由多条语句组成。在定义函数的时候我们可以使用如下的方式给函数定义一个解释文档。
def square(x): 'This is comment of this method !' return x * x # 获取方法注释信息square.__doc__
上面定义的函数我们就可以通过函数名.__doc__的方式获取方法的文档字符串。
另外,所有的函数都有返回值,如果你没有显示的告诉它返回什么,则返回None
一个函数怎么能少得了参数的部分呢,一不留神可能就会搞错,这里大概说一下,若传递的参数为不可变的参数,则不会修改参数的值,像是 数字,字符串,元组,但若是引用值的话,就可能会将原来的值改变。比方说 列表,字典。可以采用切片的方式避免对传入列表的修改,如:change(names[:]) 这样的话我们传入的是names列表的一个复制版本,而对 names 本身没有影响。
关键字参数和默认值,举例说明
def hello(greeting = 'Hello',name = 'world'): print('{},{}!'.format(greeting,name)) hello() Hello,world! hello(name = 'YJK923') Hello,YJK923!
可变参数:允许用户提供任意数量的参数。使用 * 号将提供的所有参数收集到一个元组中。这种用法在赋值的时候也遇到过。举例
def print_params(*param): print(param) print_param('Testing') Testing print_param(1,2,3) (1,2,3)
星号的参数最好放在最后,不然在调用方法的时候需要指出星号参数后面的参数的值是多少。
还有一种使用两个星号,是用于收集带有关键字参数的方法,得到的值是一个字典而不是一个元组。
def print_dict(**params): print(params) print_dict(x = 1,y = 2,z = 3) {'z':'3','x':'1','y':'2'}
上面两个都是在定义函数的时候使用了 * ,那我们在调用的函数的时候也可以使用星号,这也就是分配参数,像这样

