51、Python 模块与面向对象编程深度解析

Python 模块与面向对象编程深度解析

1. 模块陷阱与递归导入问题

在 Python 编程中,模块的使用存在一些容易被忽视的陷阱,尤其是递归导入问题。下面我们先来看一段用于模块重载的代码:

import types
def status(module):
    print 'reloading', module.__name__
def transitive_reload(module, visited):
    if not visited.has_key(module):
        # Trap cycles, dups
        status(module)
        # Reload this module
        reload(module)
        # And visit children
        visited[module] = None
        for attrobj in module.__dict__.values():
            # For all attrs
            if type(attrobj) == types.ModuleType:
                # Recur if module
                transitive_reload(attrobj, visited)
def reload_all(*args):
    visited = {}
    for arg in args:
        if type(arg) == types.ModuleType:
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值