Во время работы над школьным проектом. Я столкнулся с этой ошибкойПочему Python интерпретирует эту переменную как int, если я инициализирую ее как строку?
>>> 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'
Я проследил его обратно в этот раздел кода
class token:
def type(self):
return "UNDEF"
def getValue(self):
pass
class numberToken(token):
_value = "0.0"
def __init__(self, v = "0.0"):
self._value = v
def type(self):
return "num"
def getValue(self):
try:
r = int(_value)
except ValueError:
r = float(_value)
return r
я понял, что в ПолучитьЗначении (сам) _value должно быть self._value. Я решил, что это, вероятно, не связано, однако при перезагрузке модуля код отлично работает.
Итак, мой вопрос в том, почему python попытался преобразовать введенную строку как int и почему изменилось значение _value на self._value в другой функции, исправьте код?
Используя пример, который вы указали с введенным кодом, не вызывает ошибки. – BrenBarn