示例
def func_name(para_list):
func_body
return object #可选
位置实参与关键字实参
- 使用位置实参调用函数,实参的顺序要和形参的顺序一样
- 关键字实参通过形参名-实参的形式传递实参给函数,实参的顺序没有影响
def func(name, age):
print(name, age)
func('tom', 12) #位置实参
func(age=12, name='tom') #关键字实参
形参默认值
- 编写函数时,给形参制定默认值,在函数调用时可省略相应的实参。
返回值
- 函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。
传递列表(重要)
- 将列表传递给函数后,在函数中对这个列表所做的任何修改都是永久性的(类似于列表的浅复制)
- 通过切片法传递列表的副本可以避免原列表被修改,如下
func_name(list_name) #原列表会被修改
func_name(list_name[:]) #原列表不会被修改
传递任意数量的实参
- 有时候,预先并不知道函数需要接受多少个实参,可以使用如下形参接收任意数量的实参
def myfriend(*friends):
print(friends)
myfriend('tom', 'joe', 'amy', 'jim')
形参名*friends中的星号让Python创建一个名为friends的空元组,并将收到的所有值都封装在这个元组中。
使用任意数量的关键字实参
- 有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息,在这种情况下,可将函数编写成能够接收任意数量键-值对,如下
def usr_info(**usr_info):
info_dict={ }
for key , value in usr_info.items():
info_dict[key] = value
return info_dict
tom_info = usr_info(first_name='tom', last_name='james', location='princeton', age=65)
print(tom_info)
形参**usr_info中的两个星号让Python创建一个名为usr_info的空字典,并将收到的所有键-值对都封装到这个字典中去。
网友评论