我正在编写一些库函数,我发现自己希望这些函数接受字符串或字符串列表作为输入,并返回相同的类型。
我已经想到了几种方法,但都显得笨拙。对于我可以编写的每个概念函数:
- 用于字符串和字符串列表的单独函数。但这需要调用代码知道变量的类型,并选择适当的函数。
- 只有一个函数,它根据使用'isinstance(inputarg,str):'检测输入类型来决定做什么。这至少隐藏了库内而不是调用者中的多个选择。
但我想知道是否有一些我忽略的更优雅的方法或习语?
澄清:在这两种解决方案中,我更喜欢第二种解决方案,制作一个在接受(和返回)字符串或字符串列表的程度上是多态的函数。然而,即使在这种情况下,切换基于isinstance()
似乎也是一种不优雅,也许有更好的选择。