如果我将这个变量初始化为字符串,为什么Python会把它解释为int?

2024-09-30 04:41:01 发布

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

在学校做项目的时候。我遇到了这个错误

>>> y = tokens.numberToken('1.23')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "tokens.py", line 10, in __init__
    self._value = v
ValueError: invalid literal for int() with base 10: '1.23'

我追溯到这段代码

^{pr2}$

我意识到在getValue(self)中,u value应该是self.\u value。我修正了这个问题,认为它可能是无关的,但是重新加载模块后,代码运行得非常完美。在

所以我的问题是,为什么python要将输入的字符串转换为int,为什么在另一个函数中将_value更改为self.\u value来修复代码?在


Tags: 项目代码inselfmostvalue错误line
1条回答
网友
1楼 · 发布于 2024-09-30 04:41:01

你的getValue确实是错误的。若要在类中使用_value,则需要键入self.\u value,这样就可以为类的该实例使用_value。这就是为什么当你改变它的时候它会起作用。在

这样它就可以查找定义为全局的_值。或者您可以在调用时将它作为参数传递给方法,然后像这样使用它。在

def getValue(self, _value):
    try:
        r = int(_value)
    except ValueError:
        r = float(_value)
    return r

参考一下http://docs.python.org/2/tutorial/classes.html

这是文档中的示例,在这里您可以看到在类中如何使用数据和索引。在

^{pr2}$

相关问题 更多 >

    热门问题