我正在使用嵌套类来构建我的数据和数据特定的函数(在代码片段中无法获得缩进,抱歉):
class test:
class AA:
def __init__(self):
self.name = "ZZ-top"
self.flag = False
def reset(self):
self.name = "AArdvark"
self.flag = True
class BB:
def __init__(self):
self.num = 11
def checker(self):
if self.num > 10:
test.AA.name = "Toasty"
def __init__(self):
self.AA = self.AA()
self.BB = self.BB()
对我而言,这是按类别隔离数据的最简单,最简单的方法。我经常有来自不同来源的相同数据,并希望有相应的数据。例如。 data.image.latitude和data.csv.latitude。我还想拥有从多个类中获取或设置数据的函数。例如:检查功能。
问题是python似乎不喜欢嵌套类。我遇到了pickle的麻烦(不能pickle类'test.BB.num'。这似乎是一个常见的pickle /嵌套类问题)和一些想要相邻类的信息的函数不起作用。我想我必须放弃嵌套类。
构建此数据的python'esque正确方法是什么?我应该只拥有一个巨大的大班(self.AA_timeofday ... self.ZZ_timeofday),其中包含所有功能还是有更好的东西?
答案 0 :(得分:1)
很少需要嵌套类,除了将类的名称包装在另一个名称空间中并打破酸洗之外,功能上没有区别。
只需将类放在模块的全局级别:
class AA:
def __init__(self):
self.name = "ZZ-top"
self.flag = False
def reset(self):
self.name = "AArdvark"
self.flag = True
class BB:
def __init__(self):
self.num = 11
def checker(self):
if self.num > 10:
test.AA.name = "Toasty"
class test:
def __init__(self):
self.AA = AA()
self.BB = BB()