【发布时间】:2020-05-06 17:01:51
【问题描述】:
在 python 中,我有一个类,其中一个属性是保存数据的其他类,如下所示:
class A:
class Params:
def __init__(self):
self.param1 = None
self.param2 = None
...
def __init__(self):
self.parameters = self.Params()
这样,如果有人想更改self.parameters 中的参数之一,他可以写self.parameters.param1 = ...。
我想将保存参数的类 Params 更改为字典
class A:
def __init__(self):
self.parameters = {
'self.param1': None
'self.param2': None
}
这样,如果有人想更改任何内容,他可以改为写self.parameters['param1'] = ...。我已经实现了这个更改(在开发分支中)并且它有效。问题是其他人使用该代码,如果我进行此更改,它将破坏他们的代码(这是简单的修复,但仍然如此)。
我想知道是否有任何方法可以做到,这样如果有人以旧方式(即parameters.param1 = ...)写作,它仍然可以工作,但当他这样做时会打印DEPRECATED 消息,这样我可以制作一个过渡窗口,让人们从旧方式到新方式。我想出的唯一方法是如果我更改属性的名称,我可以保留旧代码并添加log.warning,但我不想更改属性的名称,所以如果有人能想到办法这样做会很棒:)
【问题讨论】:
标签: python dictionary oop deprecated