在类中,如何将输出文件命名为此类的未来实例的名称

时间:2018-03-30 20:34:53

标签: python pandas class dataframe instance

我是创建课程的初学者。在我的课上,我定义了一个输出csv文件的函数。但是,我想将csv文件名命名为future instance的名称 这是一个虚拟代码,希望可以解释我想要做什么

class output
     function()
         df.to_csv('output.csv')
a=output()
a.function()

我正在寻找的结果:输出csv文件 - a.csv
我如何实现上述目标?

2 个答案:

答案 0 :(得分:0)

编写意图的适当方法是将csv文件的名称(或其某些部分)传递给对象的构造函数:

#UNTESTED
class output:
    def __init__(self, myname):
        self.myname = myname
    def function():
         df.to_csv(self.myname + '.csv')

a=output('a')
a.function()

没有任何有用的方法可以准确地完成您的要求。对象本身不知道绑定到对象的变量的名称。

但即使变量的名称可用,请考虑以下事项:

a=output()
b=a
a.function()
b.function()

两个.function()调用正好发生在同一个对象上。该对象无法知道是创建a.csv还是b.csv

更糟糕的是,

lst[4] = dct["hello"] = output()

假设调用.function(),文件名是什么?

答案 1 :(得分:0)

我认为由于Python极具动态的能力,你所描述的。然而,它将是笨拙的,很可能不是实现目标的正确方法。考虑简单地做

class output:
    def function(name):
        df.to_csv(name + '.csv')

a = output()
a.function('a')

一般来说,您选择的变量名永远不会影响代码的最终结果。