Python在类的第一个实例上加载数据

2024-04-25 09:07:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python类,它需要引用一个大的数据集。我需要创建类的数千个实例,这样我就不想每次都加载数据集。将数据放入另一个必须首先创建并作为参数传递给另一个类的方法很简单:

class dataset():
    def __init__(self, filename):
        # load dataset...

class Class_using_dataset():
    def __init__(self, ds)
        # use the dataset and do other stuff

ds = Dataset('file.csv')
c1 = Class_using_dataset(ds)
c2 = Class_using_dataset(ds)
# etc...

但我不希望我的用户必须处理数据集,因为如果我可以在后台处理它,它总是同一个数据集。在

当我创建类的第一个实例时,是否有一种python/canonical方法将数据加载到全局命名空间中?我希望有这样的东西:

^{pr2}$

Tags: the数据实例方法selfinitusedef
2条回答

您可以在解析Class_using_dataset类时,或者当用户创建该类的第一个实例时,将数据集加载到类变量中。在

第一种策略只需要将加载数据集的行移到类本身中。在

^{1}$

对于第二种方法,将None分配给类变量,并且只在dsNone的情况下,在__init__方法中加载数据集。在

^{pr2}$

如果数据集在类的所有实例之间共享,则将其作为类变量。在

^{1}$

相关问题 更多 >