python 钩子函数详解

本文深入探讨Python中的钩子函数,包括with语句与__enter__、__exit__方法,class与__new__、__init__、__del__的使用,以及__all__的作用和在包导入中的应用。了解这些不那么常见的魔法方法,能帮助开发者更好地掌握Python编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.with 与 __enter__ ,__exit__

    with obj:
        expressment
    #进入with块时调用 obj.__enter__()
    #退出with块时调用 obj.__exit__()

2. class 与__new__,__init__,__del__

创建对象实例时调用__new__(self,...),基本不用。。。
专门用于实例初始化 __init__(self,...)

析构函数__del__,但并不保证在对象存在于解释器退出后的情况下,仍旧能被执行(因为解释器已经退出了)

这三个是python为数不多的不那么王道的钩子

[参考这里]

http://pycoders-weekly-chinese.readthedocs.org/en/latest/issue6/a-guide-to-pythons-magic-methods.html

3.__all___

作为一个高级功能,可以在init.py文件中使用all列表来定义目录以form *语句形式导入时,需要
导出什么。all列表是指出当包(目录—)名称使用from *的时候,应该导入的子模块名称清单。

eg:
/usr/local/lib/python2.7/sqlite3/__init__.py
from dbapi2 import *
/usr/local/lib/python2.7/site-packages/mod_python/__init__.py
__all__ = ["apache", "cgihandler", "psp",
           "publisher", "util", "python22"]

本条摘自

http://ipseek.blog.51cto.com/1041109/795782

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值