在学校做项目的时候。我遇到了这个错误
>>> 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来修复代码?在
你的getValue确实是错误的。若要在类中使用_value,则需要键入self.\u value,这样就可以为类的该实例使用_value。这就是为什么当你改变它的时候它会起作用。在
这样它就可以查找定义为全局的_值。或者您可以在调用时将它作为参数传递给方法,然后像这样使用它。在
参考一下http://docs.python.org/2/tutorial/classes.html
这是文档中的示例,在这里您可以看到在类中如何使用数据和索引。在
^{pr2}$相关问题 更多 >
编程相关推荐