我正在编写一个Python应用程序,它将使用一个配置文件,因此我将配置文件的控制权委托给一个专用模块configmanager
,并且在这个模块中有一个类ConfigManager
。在
每当运行ConfigManager
中的方法时,这会以某种方式更改我的配置文件,我需要从磁盘上获取该文件的最新版本。当然,本着DRY的精神,我应该将config文件的打开委托给它自己的函数。在
但是,我觉得显式地调用一个方法来获取并返回编辑它的每个函数中的配置文件并不是很“干净”。在
在Python中,是否有一种推荐的方法来运行一个方法,并使一个值对类中的其他方法可用,无论何时在该类中运行一个方法?在
换句话说:
我创建ConfigManager.edit_config()
。
无论何时调用ConfigManager.edit_config()
,都会运行另一个函数ConfigManager.get_config_file()
。
ConfigManager.get_config_file()
为方法ConfigManager.edit_config()
提供一个值。
并且ConfigManager.edit_config()
现在运行,可以访问ConfigManager.get_config_file()
给出的值。
我希望在ConfigManager
中有许多版本的edit_config()
方法,因此希望干燥我的代码。在
有没有推荐的方法来完成这样的事情?或者我应该创建一个函数来获得配置,然后每次手动调用它?在
既然你从磁盘上得到了一些东西,你就打开了一个文件。{cd1>的函数可以与函数一起使用。在
您应该检查上下文管理器。这样,每次有人通过
__enter__
方法访问配置文件时,您就可以实现您想要的功能,并且(如果需要的话)实现用__exit__
方法停止使用资源的功能。在自然的方法是:
是使
get_config_file()
返回该值。在只需在
edit_config()
内调用get_config_file()
。在如果
edit_config()
的多个版本,那么decorator可能是最好的选择:我其实不喜欢这样:
首先,
edit_config1
的声明比实际使用需要多了一个参数(因为decorator提供了额外的参数)。在其次,它实际上并没有节省那么多的锅炉板:
^{pr2}$总而言之,我不认为装修工节省了足够的重复,值得这样做。在
相关问题 更多 >
编程相关推荐