由于缺乏维护动态类型代码的经验,我正在寻找处理这种情况的最佳方法:
(python 中的示例,但可以使用任何动态类型语言)
def some_function(object_that_could_be_a_list):
if isinstance(object_that_could_be_a_list, list):
for element in object_that_could_be_a_list:
some_function(element)
else:
# Do stuff that expects the object to have certain properties
# a list would not have
我对此感到很不安,因为我认为一个方法应该只做一件事,而且我认为它没有应有的可读性。因此,我很想创建三个函数:第一个函数将获取任何对象并在其他两个函数之间“排序”,一个用于列表,另一个用于“简单”对象。再说一次,这会增加一些复杂性。
什么是这里最“可持续”的解决方案,以及保证易于维护的解决方案?对于那些我不知道的情况,python 中有没有成语?提前致谢。