非常简单的向后兼容性演示

时间:2016-06-24 13:25:10

标签: python backwards-compatibility

我只想澄清我关于向后兼容性的概念,为此我创建了一个小例子。此示例并非旨在显示任何实际用途,我忽略了该程序的所有其他方面,以使其尽可能简单。

如果应用程序的第一个版本中有某个功能:

def print_data(data):
    if isinstance(data, list):
        for item in data:
            print item

可以使用:

data_to_print = ['one','two','three','four','five']
print_data(data_to_print)

在下一个版本中,实现更改为支持字符串

def print_data(data):
    if isinstance(data, list):
        for item in data:
            print item
    elif isinstance(data, str):
        print_data(data.split())

现在可以通过两种方式使用它:

# old style
data_to_print = ['one', 'two', 'three', 'four']
print_data(data_to_print)

# new style
data_to_print = "one two three four five"
print_data(data_to_print)

这可以称为向后兼容的有效示例吗?

如果没有,请举一个简单的例子。

1 个答案:

答案 0 :(得分:1)

See the wikipedia page about backward compatibilty.

就您的示例而言,这意味着数据会在整个软件中将其格式从<my:UserControlName Grid.Column="2" Grid.Row="2" ... /> <Window ... xmlns:my="clr-namespace:AssemblyName" ... /> 更改为list,并且出于向后兼容的原因,string仍然允许print_data采用其先前列表格式的情况。