Python函数在没有传递参数的情况下运行?

时间:2017-10-19 19:23:09

标签: python function pandas parameters

我有一个关于以下代码段如何运行的问题(即代码是从对此问题的回复Andy Hayden复制的:&#34; How do convert a pandas/dataframe to XML?&#34;)< / p>

def to_xml(df, filename=None, mode='w'):
    def row_to_xml(row):
        xml = ['<item>']
        for i, col_name in enumerate(row.index):
            xml.append('  <field name="{0}">{1}</field>'.format(col_name, row.iloc[i]))
        xml.append('</item>')
        return '\n'.join(xml)
    res = '\n'.join(df.apply(row_to_xml, axis=1))

    if filename is None:
        return res
    with open(filename, mode) as f:
        f.write(res)

pd.DataFrame.to_xml = to_xml

然后,假设您有一个Pandas数据帧对象( df ),可以通过运行来调用 to_xml 函数:

df.to_xml()

df.to_xml('foo.xml')

我不明白为什么在调用 df.to_xml 时我不需要将我的dataframe对象的实例作为参数传递给函数,因为第一个参数不是可选?

更清楚的是,为什么我不需要通过以下方式调用 to_xml ?:

df.to_xml(df)

df.to_xml(df, 'foo.xml')

提前致谢

0 个答案:

没有答案