Я получаю сообщение об ошибке TypeError: требуется целое число при использовании setattr в следующем коде.
Вот используемые переменные:
attr_list = ['enable_adjacent_channel', 'enable_cochannel', 'imt_link', 'is_space_to_earth', 'num_snapshots', 'output_dir', 'output_dir_prefix', 'overwrite_output', 'seed', 'system']
config = {'general': {'num_snapshots': 100, 'imt_link': 'DOWNLINK', 'system': 'FSS_SS', 'enable_cochannel': False, 'enable_adjacent_channel': True, 'seed': 101, 'overwrite_output': True}...}
self = ParametersGeneral(section_name='general', is_space_to_earth=False, num_snapshots=10000, imt_link='DOWNLINK', system='RAS', enable_cochannel=False, enable_adjacent_channel=True, seed=101, overwrite_output=True, output_dir='output', output_dir_prefix='output')
На первой итерации цикла я получаю ошибку. Вот значения:
attr = 'enable_adjacent_channel'
attr_val = True
Код попадает в блок, который пытается установить config[self.section_name][attr] = True с помощью setattr. Хотя значение уже является логическим, интерпретатор выдает ошибку TypeError: требуется целое число. Я не уверен, почему это происходит. Будем очень признательны за любую помощь."
for attr in attr_list:
try:
attr_val = getattr(self, attr)
if isinstance(attr_val, str):
setattr(self, attr, config[self.section_name][attr])
*elif isinstance(attr_val, bool):
setattr(self, attr, bool(config[self.section_name][attr]))**
elif isinstance(attr_val, float):
setattr(self, attr, float(config[self.section_name][attr]))
elif isinstance(attr_val, int):
setattr(self, attr, int(config[self.section_name][attr]))
elif isinstance(attr_val, tuple):
# Check if the string defines a list of floats
try:
param_val = config[self.section_name][attr]
tmp_val = list(map(float, param_val.split(",")))
setattr(self, attr, tuple(tmp_val))
except ValueError:
# its a regular string. Let the specific class implementation
# do the sanity check
print(f"ParametersBase: could not convert string to tuple \"{self.section_name}.{attr}\"")
exit()
except KeyError:
print(f"ParametersBase: NOTICE! Configuration parameter \"{self.section_name}.{attr}\" is not set in configuration file. Using default value {attr_val}")
except Exception as e:
print(f"Um erro desconhecido foi encontrado: {e}")
Подробнее здесь: https://stackoverflow.com/questions/791 ... use-the-se
Я получаю ошибку TypeError: требуется целое число при попытке использовать метод setattr ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Я получаю ошибку TypeError: требуется целое число при попытке использовать метод setattr
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Я получаю ошибку TypeError: требуется целое число при попытке использовать метод setattr
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка API критериев: оператор не существует: целое число = целое число []
Anonymous » » в форуме JAVA - 0 Ответы
- 63 Просмотры
-
Последнее сообщение Anonymous
-