python自定义函数的规则

  • Post category:Python

下面就来详细讲解一下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自定义函数的规则以及示例代码的完整攻略了。