欢迎访问宙启技术站
智能推送

Python函数的基本语法和特性介绍

发布时间:2023-06-26 14:21:00

Python是一种以动态类型为基础的高级编程语言,其简单易学、易读性高、可扩展性强等特点,使它成为了许多开发人员心目中的入门级别编程语言。Python中函数在程序开发中扮演着非常重要的角色,本文将详细介绍Python函数的基本语法和特性。

一、Python函数的声明

Python函数的声明以关键字“def”开头后跟随函数名称、输入参数以及函数体,其语法格式如下:

def function_name(parameters):
    function_body
    return [expression]

其中,“function_name”表示函数名,“parameters”表示输入参数,如果没有参数则可以忽略该字段,这里使用“()”表示空参数列表。“function_body”表示函数体,该函数体内部是可以包含若干条语句的。“return [expression]”表示函数的返回值,其中“expression”可以省略,此时函数的返回值为None。

二、Python函数的调用

Python函数的调用是通过函数名和传值方式实现的,其语法格式如下:

function_name(parameters)

这里“function_name”表示待调用的函数名,“parameters”表示传递给函数的参数值。

三、Python函数的参数传递

Python函数的参数传递包括位置参数、默认参数、可变参数和关键字参数,下面进行详细介绍。

1、位置参数

位置参数是把参数按照位置顺序进行传递,比如下面代码中的“x”和“y”就是在函数体之外的位置顺序分别为1和2的两个参数。

def add(x, y):
    return x + y
print(add(1, 2)) # 输出:3

2、默认参数

默认参数是为函数参数提供一个默认值,这个默认值在函数未被传值时使用。如下代码中,“y”这个参数用到了默认值2。

def add(x, y=2):
    return x + y
print(add(1)) # 输出:3

3、可变参数

可变参数指的是传入的参数个数不确定,例如下面代码中的“*args”,它可以自动将多个参数视为一个元祖类型的参数。

def add(*args):
    return sum(args)
print(add(1,2,3)) # 输出:6

4、关键字参数

关键字参数指的是传入的参数必须指定参数名,例如下面代码中的“name=”和“age=”就是关键字参数,在函数被调用时可以不按顺序输入参数。

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
person('Bob', 35, city='Beijing') # 输出:name: Bob age: 35 other: {'city': 'Beijing'}

四、Python函数的返回值

Python函数可以返回任意类型的对象,包括字符串、数字、布尔值、列表、元祖、字典等。下面示例中的函数返回一个列表。

def get_list(length):
    res = []
    for i in range(length):
        res.append(i)
    return res
print(get_list(5)) # 输出:[0, 1, 2, 3, 4]

五、Python函数的作用域

在Python中,函数内部可以访问全局变量,但是在函数内声明的变量,在函数外无法访问。如下面的示例代码所示。

x = 10 # 全局变量
def foo():
    y = 5 # 函数内部变量(局部变量)
    print("函数内:x = %d" % x)
    print("函数内:y = %d" % y)
foo()
print("函数外:x = %d" % x)
print("函数外:y = %d" % y) # 报错:NameError: name 'y' is not defined

六、Python函数的嵌套

Python函数支持函数的嵌套使用,即在一个函数内部定义一个或多个函数,如下例子所示。

def father_function(x):
    def child_function(y):
        return y + 1
    return child_function(x) + 1
print(father_function(3)) # 输出:5

七、Python函数的装饰器

Python装饰器通常是一个函数,在源函数的前后部分进行一些操作,以扩展原函数的功能。装饰器通常是用于添加日志、计时器、输入参数有效性检查等功能。如下面的示例代码所示,为函数添加装饰器后输出函数的执行时间。

import time
def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        func(*args, **kwargs)
        end_time = time.time()
        print('the function [%s] running time: %.2f s' % (func.__name__, end_time - start_time))
    return wrapper
@timer
def print_time():
    time.sleep(2)
print_time() # 输出:the function [print_time] running time: 2.00 s

综上所述,Python函数作为程序设计中的一种可重用的代码块,在Python程序开发中扮演着非常重要的角色。本文对Python函数的基本语法和特性进行了详细介绍,希望能对Python初学者有所帮助。