您当前的位置:首页 > 计算机 > 编程开发 > Python

回调函数原理与Python实现

时间:09-05来源:作者:点击数:

回调函数的定义与普通函数并没有本质的区别,但一般不直接调用,而是作为参数传递给另一个函数,当另一个函数中触发了某个事件、满足了某个条件时就会自动调用回调函数。下面的代码用来删除可能会包含只读属性文件的文件夹,主要演示回调函数的原理和用法。

import os

import stat

def remove_readonly(func, path):                #定义回调函数

    os.chmod(path, stat.S_IWRITE)               #删除文件的只读属性

    func(path)                                  #再次调用刚刚失败的函数

def del_dir(path, οnerrοr=None):

    for file in os.listdir(path):

        file_or_dir = os.path.join(path,file)

        if os.path.isdir(file_or_dir) and not os.path.islink(file_or_dir):

            del_dir(file_or_dir)                #递归删除子文件夹及其文件

        else:

            try:

                os.remove(file_or_dir)           #尝试删除该文件,

            except:                             #删除失败

                if onerror and callable(onerror):

                    onerror(os.remove, file_or_dir)#自动调用回调函数

                else:

                    print('You have an exception but did not capture it.')

    os.rmdir(path)                                #删除文件夹

del_dir("E:\\old", remove_readonly)               #调用函数,指定回调函数

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门