python中symbol_Python symbol.expr方法代码示例

# 需要导入模块: import symbol [as 别名]

# 或者: from symbol import expr [as 别名]

def com_try_except_finally(self, nodelist):

# ('try' ':' suite

# ((except_clause ':' suite)+ ['else' ':' suite] ['finally' ':' suite]

# | 'finally' ':' suite))

if nodelist[3][0] == token.NAME:

# first clause is a finally clause: only try-finally

return TryFinally(self.com_node(nodelist[2]),

self.com_node(nodelist[5]),

lineno=nodelist[0][2])

#tryexcept: [TryNode, [except_clauses], elseNode)]

clauses = []

elseNode = None

finallyNode = None

for i in range(3, len(nodelist), 3):

node = nodelist[i]

if node[0] == symbol.except_clause:

# except_clause: 'except' [expr [(',' | 'as') expr]] */

if len(node) > 2:

expr1 = self.com_node(node[2])

if len(node) > 4:

expr2 = self.com_assign(node[4], OP_ASSIGN)

else:

expr2 = None

else:

expr1 = expr2 = None

clauses.append((expr1, expr2, self.com_node(nodelist[i+2])))

if node[0] == token.NAME:

if node[1] == 'else':

elseNode = self.com_node(nodelist[i+2])

elif node[1] == 'finally':

finallyNode = self.com_node(nodelist[i+2])

try_except = TryExcept(self.com_node(nodelist[2]), clauses, elseNode,

lineno=nodelist[0][2])

if finallyNode:

return TryFinally(try_except, finallyNode, lineno=nodelist[0][2])

else:

return try_except

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值