我一直在努力用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}}