您的位置:

Python异常处理与函数定义

一、异常处理

异常(Exception)是指在程序执行过程中发生的一些错误或问题。在 Python 中,异常是一种标准的动态语言机制,可以用来告诉程序员出现了什么问题以及如何处理这个问题。Python 提供了 try、except 和 finally 关键字用于异常处理。
try:
    #尝试执行的代码
except Exception1:
    #处理第1种异常
except Exception2:
    #处理第2种异常
else:
    #当没有异常时,执行的代码
finally:
    #不管有没有异常,都要执行的代码
事实上,在 Python 中任何异常都是继承自 Exception 这个类。所以,可以通过捕获 Exception 类来捕获所有异常。例如:
try:
    #尝试执行的代码
except Exception as e:
    #处理异常,e 是异常实例

二、函数定义

函数是指完成特定任务并返回数值、对象或其他值的代码块。在 Python 中,函数是一等公民(First-Class Citizen),因为函数可以像变量一样被传递、存储和访问。Python 中的函数定义是以 def 关键字开始,并在冒号(:)后声明函数体。函数的返回值使用 return 语句实现。
def function_name(param1, param2, param3):
    #函数体
    return result
在 Python 中,函数支持参数的默认值、可变参数和关键字参数。可以通过 def 函数名(*参数)来定义可变参数列表以及 def 函数名( **参数)来定义关键字参数。
def func(arg1, arg2 = 1, *args, **kwargs):
    print(arg1)
    print(arg2)
    print(args)   #元组形式的不定长参数
    print(kwargs) #字典形式的关键字参数

三、装饰器

Python 中的装饰器(Decorator)是一种语法糖,它让我们可以简洁、优雅地修改函数或类的功能。装饰器本身是一个函数,它接收一个函数作为参数并返回一个新函数。和函数类似,装饰器可以被复合,并且可以对函数进行嵌套。 例如,下面是一个简单的装饰器例子:
def add_time(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        res = func(*args, **kwargs)
        print("time taken:", time.time() - start)
        return res
    return wrapper

@add_time
def process_data():
    # some time-consuming data processing here
    return result
这个例子中,add_time 是一个装饰器函数,它将被 process_data 函数使用。当 process_data 被调用时,Python 会自动调用 add_time 函数,并将 process_data 作为参数传入。add_time 函数将返回一个新函数 wrapper,wrapper 将会存储 process_data 的执行结果,并输出执行该函数所花费的时间。最后,wrapper 将结果返回给 process_data 函数。