depends.py 文件源码

python
阅读 17 收藏 0 点赞 0 评论 0

项目:wttd-dojo 作者: diegosorrilha 项目源码 文件源码
def _iter_code(code):
    """Yield '(op,arg)' pair for each operation in code object 'code'"""

    from array import array
    from dis import HAVE_ARGUMENT, EXTENDED_ARG

    bytes = array('b', code.co_code)
    eof = len(code.co_code)

    ptr = 0
    extended_arg = 0

    while ptr < eof:

        op = bytes[ptr]

        if op >= HAVE_ARGUMENT:

            arg = bytes[ptr + 1] + bytes[ptr + 2] * 256 + extended_arg
            ptr += 3

            if op == EXTENDED_ARG:
                long_type = six.integer_types[-1]
                extended_arg = arg * long_type(65536)
                continue

        else:
            arg = None
            ptr += 1

        yield op, arg
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号