我有一个 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'
请告诉我如何调用这些函数
Data
无法访问 unify
函数,就像它无法访问 writeCleanData
方法范围内声明的任何其他对象一样。如果您想通过 Data
对象访问它,则应将其定义为 Data
类的方法。如果你想让它们成为类方法而不是对象方法,可以按如下方式实现:
class Data:
...
@classmethod
def unify(df, onCol):
return df.repartition(10, onCol)
unify
和 CreateFolder
看起来像实用函数,因此它们最好作为静态方法,尽管在这种情况下几乎没有实际区别。 这篇文章很好地解释了所有这些概念。