额外的价值 'None' 被打印出来,我不知道为什么

Extra value 'None' being printed out and I don't know why

我正在尝试使用两个函数来解析 XML 文档,一个用于解析 header,另一个用于解析数据。而且我在每个函数打印输出的末尾不断得到一个 'None' 值。我不知道为什么会这样。

如有任何帮助或建议,我们将不胜感激。谢谢。

XML 文件:

<datafile>
    <header>
        <name>header_name</name>
    </header>
    <game name="game_name">
    </game>
</datafile>

代码:

import xml.etree.ElementTree as ET

def parse_header(file):
    tree = ET.parse(file)
    root = tree.getroot()
    for header in root.iter('header'):
        for name in header.iter('name'):
            if name.text is not None:
                print(name.text)

def parse_games(file):
    tree = ET.parse(file)
    root = tree.getroot()
    for game in root.iter('game'):
        for key, value in game.items():
            if value is not None:
                print(value)

print(parse_header('test.dat'))
print(parse_games('test.dat'))

输出:

header_name
None
game_name
None

在 Python 中没有显式 returning 值 return None 的函数,因此主程序中的两个 print 调用最终打印 Nones 因为他们正在打印 return Nones 隐含的功能。

变化:

print(parse_header('test.dat'))
print(parse_games('test.dat'))

至:

parse_header('test.dat')
parse_games('test.dat')