instructions.py 文件源码

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

项目:femtocode 作者: diana-hep 项目源码 文件源码
def MAKE_FUNCTION(self, instr):

        code = self.ast_stack.pop()

        ndefaults = bitrange(instr.oparg, 0, 8)
        nkwonly_defaults = bitrange(instr.oparg, 8, 16)
        nannotations = bitrange(instr.oparg, 16, 32) - 1

        annotations = []
        for i in range(nannotations):
            annotations.insert(0, self.ast_stack.pop())

        kw_defaults = []
        for i in range(nkwonly_defaults * 2):
            kw_defaults.insert(0, self.ast_stack.pop())

        defaults = []
        for i in range(ndefaults):
            defaults.insert(0, self.ast_stack.pop())

        function = make_function(code, defaults, lineno=instr.lineno, annotations=annotations, kw_defaults=kw_defaults)

        doc = code.co_consts[0] if code.co_consts else None

        if isinstance(doc, str):
            function.body.insert(0, _ast.Expr(value=_ast.Str(s=doc, lineno=instr.lineno, col_offset=0),
                                              lineno=instr.lineno, col_offset=0))

        self.ast_stack.append(function)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号