下面就来详细讲解一下Python自定义函数的规则:
函数定义
Python函数定义需要使用关键字def
,格式如下:
def function_name(parameters):
"""docstring"""
statement(s)
其中,function_name
为函数名称,parameters
为参数列表,使用圆括号括起来,多个参数用逗号隔开。在函数的第一行可以选择性地使用字符串作为文档(docstring),用于函数的说明。
在函数的主体部分,可以包含一到多条语句,构成函数的代码块。
函数参数
Python函数中参数的传递方式有两种:传值调用和引用调用。
传值调用
传值调用是指将值复制给函数内部的参数,函数会在内部修改参数的值,但不会影响到函数外部的值。示例代码如下:
def add(a, b):
a += 1
b += 1
return a + b
x = 1
y = 2
z = add(x, y)
print(x, y, z)
输出结果为:1 2 5
引用调用
引用调用是指将变量的引用传递给函数内部的参数,函数会在内部修改参数的值,也会影响到函数外部的值。示例代码如下:
def modify_list(lst):
lst.append(4)
lst = [5, 6, 7]
return lst
my_list = [1, 2, 3]
my_list = modify_list(my_list)
print(my_list)
输出结果为:[5, 6, 7]
函数返回值
Python函数可以通过return
语句返回函数处理后的结果,可以返回单个值、元组或者列表等类型的数据。
示例代码如下:
def sum_list(lst):
total = 0
for i in lst:
total += i
return total
my_list = [1, 2, 3, 4, 5]
total = sum_list(my_list)
print(total)
输出结果为:15
默认参数
Python函数可以使用默认参数,当调用函数时,如果没有传递该参数的值,则使用默认值。示例代码如下:
def print_info(name, age=18):
print("Name:", name)
print("Age:", age)
print_info("Tom")
输出结果为:
Name: Tom
Age: 18
不定长参数
Python函数可以使用不定长参数,包括可变参数和关键字参数。
可变参数
可变参数是指参数的个数是不确定的,可以使用*args
来定义。在函数内部,可变参数会被转为一个元组进行处理。示例代码如下:
def average(*args):
total = sum(args)
return total / len(args)
print(average(1, 2, 3))
print(average(1, 2, 3, 4, 5))
输出结果为:
2.0
3.0
关键字参数
关键字参数是指参数传递时使用关键字传递,可以使用**kwargs
来定义。在函数内部,关键字参数会被转为一个字典进行处理。示例代码如下:
def print_info(**kwargs):
for key, value in kwargs.items():
print("{}: {}".format(key, value))
print_info(name="Tom", age=18, gender="male")
输出结果为:
name: Tom
age: 18
gender: male
以上就是Python自定义函数的规则以及示例代码的完整攻略了。