Python:读取后定义为“Instances”而不是“Int”的数字

2024-09-29 17:20:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个项目,我被一种罕见的python行为困住了。你知道吗

我有一个包含数字(只有整数)的列表。问题是,如果我为这些数字调用函数type(),它们将被标记为instance,而不是int。这使得我无法对它们执行任何类型的数学操作,因为我尝试了以下方法:

for elem in list:
   print elem+1

将显示错误:

TypeError: unsupported operand type(s) for +: 'instance' and 'int'

有没有办法指定这些数字是int类型的?你知道吗

附加信息:列表是从文本文件读取的(项目实际上是一种编程语言,列表是通过解析器读取的)。你知道吗

编辑:这是代码的一部分,解析器在这里读取列表。你知道吗

def p_exp_set_literal(symbol):
"""expression : OPENCURLY comma_list CLOSECURLY
              | OPENCURLY CLOSECURLY """
if len(symbol) == 4:
    start, _ = span(symbol, 1)
    _, end = span(symbol, 3)
    symbol[0] = Set((start, end), symbol[2])
else:
    start, _ = span(symbol, 1)
    _, end = span(symbol, 2)
    symbol[0] = Set((start, end), None)

comma_list是列表所在的位置。然后发送到抽象语法树,如下所示:

class Set(Expression):
"""Class to define a set"""
def __init__(self, lexspan, values):
    self.lexspan = lexspan
    if values is not None:
        self.values = values
    else:
        self.values = []

这里values是列表所在的位置。你知道吗


Tags: 项目instanceself列表type数字symbolstart

热门问题