【发布时间】:2013-04-25 03:33:35
【问题描述】:
免责声明:这可能是一个非常主观的问题,没有“正确”答案,但我希望能提供有关最佳实践和程序设计的任何反馈。所以这里是:
我正在编写一个将文本文件读入Text 对象的库。现在可以使用文件名列表或直接使用Sentence 对象列表来初始化这些。我想知道最好/最 Pythonic 的方法可能是什么,因为如果我理解正确,Python 不直接支持方法重载。
我在Scikit-Learn 的feature extraction module 中找到的一个示例只是在初始化对象时将输入的类型作为参数传递。我假设一旦设置了这个参数,它只是在内部处理不同情况的问题:
if input == 'filename':
# glob and read files
elif input == 'content':
# do something else
虽然这很容易实现,但它看起来并不是一个非常优雅的解决方案。所以我想知道是否有更好的方法来处理多种类型的输入来初始化我忽略的类。
【问题讨论】:
-
绝对不是答案,也绝对不是 pythonic,但你可以(我已经)在 python 中实现type signature style method overloading 来娱乐。
标签: python oop polymorphism overloading