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

In the class, how do i name the output file as the name of the future instance of this class

我是创作的初学者class。在我的 class 中,我定义了一个函数来输出一个 csv 文件。但是,我想用未来实例的名称来命名csv文件名。
这是一个虚拟代码,希望可以解释我想要做什么

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

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

对您的意图进行编码的一种适当方法是将 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(),文件名是什么?

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

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

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

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