我有一个基本问题,我在xml函数中声明xmlfile为全局文件,是否可以在另一个子例程中使用它而没有任何问题?子例程的顺序重要吗?

 def xml():

        global xmlfile
        file = open('config\\' + productLine + '.xml','r')
        xmlfile=file.read()
 def table():
            parsexml(xmlfile)

最佳答案

函数的编写顺序无关紧要。
xmlfile的值将由调用函数的顺序确定。

但是,通常最好避免将值重新分配给函数内部的全局变量-这会使分析函数的行为更加复杂。最好使用函数参数和/或返回值,(或者使用一个类,并使变量成为一个类属性):

def xml():
    with open('config\\' + productLine + '.xml','r') as f:
        return f.read()

def table():
     xmlfile = xml()
     parsexml(xmlfile)

10-01 18:44