Python 向后兼容性的非常简单的演示
我只想澄清我关于向后兼容性的概念,为此我创建了一个小示例。这个例子并不是为了展示它的任何实际用途,我忽略了程序的所有其他方面,以使它尽可能简单 如果应用程序的第一个版本中有函数:Python 向后兼容性的非常简单的演示,python,backwards-compatibility,Python,Backwards Compatibility,我只想澄清我关于向后兼容性的概念,为此我创建了一个小示例。这个例子并不是为了展示它的任何实际用途,我忽略了程序的所有其他方面,以使它尽可能简单 如果应用程序的第一个版本中有函数: def print_data(data): if isinstance(data, list): for item in data: print item 可以像这样使用: data_to_print = ['one','two','three','four','fiv
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)
这可以称为向后兼容性的有效示例吗
如果没有,请给出一个简单的例子。
就您的示例而言,这意味着整个软件中的数据格式将从
list
更改为string
,并且出于向后兼容性的原因,print_data
仍然允许data
采用以前的列表格式。新版本将中断使用print_data
作为参数传递方式的应用程序,仅当它们是数组且静默忽略字符串时才打印。从这个意义上讲,它不是向后兼容的。如果您要添加一个新方法print\u string\u data
,该方法将向后兼容,因为现有代码无论如何都不会使用该方法。如果函数?如果是,则新版本是向后兼容的。在这种情况下,更新是向后兼容的,因为任何使用带有列表的函数都会得到相同的结果。