У меня есть следующий фрагмент кода.Python. Вызвать функцию внутри другой функции
def num_dim(response_i, m):
for response_j in response_i['objcontent']:
if response_i['objkey']== 'explorecube_dimvalues':
mm = [response_j['title']]
m.append(mm)
m=(len(m))
return m
if __name__=='__main__':
for response_i in response['response']:
m=[ ]
x=0
def num_dim_2(response_i, m):
if response_i['objkey']== 'explorecube_dimvalues':
m = num_dim(response_i, m)
print(m)
return m
num_dimentions= num_dim_2 (response_i, m)
print(num_dimentions)
Выход для print(m)
является:
3
но выход для print(num_dimentions)
является:
[ ]
[ ]
3
[ ]
, который я ожидал только 3.
Каждый знает, как я могу это исправить этот вопрос (получите значение 3 в качестве конечного результата). Спасибо.
Почему вы создаете функция в цикле for? Просто создайте функцию, как вы сделали первый, а затем при необходимости вызовите ее. Также мы не знаем, какой ответ ['response'] так сложно понять в цикле –
Вы понимаете, что вы изменяете свои входные данные, правильно? Вы изменяете параметр 'm' в своих функциях (который является списком и поэтому передан как ссылка), и вы также возвращаете его ?! Это не имеет смысла. Весь фрагмент кода - тарабарщина. –