Возврат переменных из функции с циклом while - PullRequest
0 голосов
/ 16 апреля 2019

Я новичок в Python, поэтому заранее прошу прощения!Я пытаюсь вернуть два списка из функции с циклом while, который читает XML-файл.Я не могу понять, как это сделать.Я имею в виду imres (целое число) и subres (2 целых числа) в приведенном ниже коде, которые находятся ~ 10 раз в цикле.Отладка показывает, что переменные правильно заполнены в цикле, но я не знаю, как вернуть заполненные списки, и вместо этого я получаю пустые списки.Благодарю.

def getresolution(node):
    imres = []
    subres = []
    child4 = node.firstChild
    while child4:
                ...
        for child8 in keepElementNodes(child7.childNodes):
            if child8.getAttribute('Hash:key') == 'ImageSize':
                X = float(child8.getElementsByTagName('Size:width')[0].firstChild.data)
                Y = float(child8.getElementsByTagName('Size:height')[0].firstChild.data)
                imres += [[X, Y]]
            if child8.getAttribute('Hash:key') == 'Resolution':
                subres += [int(child8.firstChild.data)]
        getresolution(child4)
        child4 = child4.nextSibling
    return [imres, subres]


[imres, subres] = getresolution(xml_file)

1 Ответ

0 голосов
/ 16 апреля 2019

Не проверено, но это должно указать вам правильное направление:

def getresolution(node):
    imres = []
    subres = []
    child4 = node.firstChild
    while child4:
                ...
        for child8 in keepElementNodes(child7.childNodes):
            if child8.getAttribute('Hash:key') == 'ImageSize':
                X = float(child8.getElementsByTagName('Size:width')[0].firstChild.data)
                Y = float(child8.getElementsByTagName('Size:height')[0].firstChild.data)
                imres += [[X, Y]]
                if child8.getAttribute('Hash:key') == 'Resolution':
                    subres += [int(child8.firstChild.data)]
        t_imres, t_subres = getresolution(child4)
        imres += t_imres
        subres += t_subres
        child4 = child4.nextSibling
    return [imres, subres]


[imres, subres] = getresolution(xml_file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...