如何调用Python类中的函数

问题描述 投票:0回答:1

我有一个 python 类,其中有嵌套函数。我无法调用嵌套的函数。

class Data:
    __instance__ = None
    def writeCleanData(df,path,d_path,row,days,lk):
        Data.write(Data.unify(df,row),path,"append")
        d_path[path] = os.path.split(d_path[path])[0]
        Data.CreateFolder(d_path[path],lk)
        Data.CleanPath(lk,path,d_path)
        
        def unify(df, onCol):
            return df.repartition(10, onCol)
        
        def CreateFolder(base, lake):
            x = fd.path(base)
            
    def write(df,data_nm,mode):
        Data.get_instance._write(df,data_nm,mode)
       

我越来越

'Data' has no attribute 'unify'

请告诉我如何调用这些函数

python
1个回答
0
投票

Data
无法访问
unify
函数,就像它无法访问
writeCleanData
方法范围内声明的任何其他对象一样。如果您想通过
Data
对象访问它,则应将其定义为
Data
类的方法。如果你想让它们成为类方法而不是对象方法,可以按如下方式实现:

class Data:
    ...
    @classmethod
    def unify(df, onCol):
        return df.repartition(10, onCol)

unify
CreateFolder
看起来像实用函数,因此它们最好作为静态方法,尽管在这种情况下几乎没有实际区别。 这篇文章很好地解释了所有这些概念。

© www.soinside.com 2019 - 2024. All rights reserved.