我只想澄清我关于向后兼容性的概念,为此我创建了一个小例子。此示例并非旨在显示任何实际用途,我忽略了该程序的所有其他方面,以使其尽可能简单。
如果应用程序的第一个版本中有某个功能:
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)
这可以称为向后兼容的有效示例吗?
如果没有,请举一个简单的例子。
答案 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
采用其先前列表格式的情况。