有没有办法在Python中创建嵌套的类属性?

时间:2020-03-24 07:30:22

标签: python class attributes

我一直在努力用Python为我的图像处理代码创建一个类。

代码需要一大堆不同的参数(在params.txt文件中设置),可以轻松地将其分为不同的类别。例如,有些是路径,有些与实验几何相关,有些只是用于打开/关闭某些图像处理功能的开关等。

如果我的“结构”(不确定如何创建它)被创建为P,我想拥有类似的东西,

print(P.paths.basepath())
'/some/path/to/data'

print(P.paths.year())
2019

print(P.filenames.lightfield())
'andor_lightfield.dat'

print(P.geometry.dist_lens_to_sample())
1.5

print(P.settings.subtract_background())
False

print(P.settings.apply_threshold())
True

然后,从主代码中,我可以访问所需的任何元素,

self.setting_load_background = False

def method_load_background(self):
    myutils.load_dat(self.background_fname())

我已经尝试创建自己的类来做到这一点,但是一切都在一个大块中。我不知道如何为该类创建嵌套部分。因此,例如,我有一个设置和一个名为“ load_background”的函数。这是有道理的,因为load_background函数总是在特定位置加载特定文件名,但只有在load_background参数设置为True时才这样做。

在课堂上,我尝试做类似的事情

if P.settings.load_background() == True:
    P.load_background()
else:
    P.generate_random_background()

但这很丑。会更好,

{{1}}

0 个答案:

没有答案