def _read_label(key):
if isinstance(key, ast.Name):
return key.id
elif isinstance(key, ast.Num):
n = key.n
if isinstance(n, (int, long)) and n >= 0:
return n
else:
raise _errors.TyError("Invalid numeric label.", key)
elif isinstance(key, ast.Str):
s = key.s
if s != "":
return s
else:
raise _errors.TyError("Invalid string label.", key)
else:
raise _errors.TyError("Invalid label", key)
评论列表
文章目录