在Python中使用Optional args有什么好处.而不是使用args + optional args重载一个函数(或方法),而不是具有继承的多态性就足够了吗?
我只是想了解拥有此功能的原因.或者是能够以多种方式做一件事的情况?
PS:我可以看到在函数式编程中使用它是有意义的,以避免必须定义许多函数实际上做几乎相同的事情,但还有其他...
可选的args与多态无关(甚至不需要你有类! - ) - 它只是(主要用途!)通常你有"很少需要"的参数通常在某些选项中做出的选择方式,但调用者设置不同可能是有用的.
例如,考虑内置open. 大多数情况下,你打开文本文件而不是二进制打开,打开它们进行阅读而不是写作,你对默认缓冲感到满意 - 所以,你只是open('thefile.txt')过着快乐的生活.能够指定的方式在其中要打开(二进制,用于覆盖,可以进行追加,...)作为第二个(可选)参数,而不是它的默认'r'值,当然通常是有用的.一旦进入一个蓝色的月亮,你想要一个具有特殊缓冲选项的文件对象,然后将缓冲作为第三个(可选的)参数(当然默认值)支付大笔红利......没有它对你的广阔您打开的大部分文件!
继承和多态并不能真正帮助我们获得with open('blah.txt') as f:如此简洁的便利,同时仍然允许相同的内置函数服务于更多的用例(例如,当您需要打开文件以进行二进制追加而没有任何缓冲时...如果你编码很多,也许每年一次;-).当然,适用于这些内置函数的便利原则也适用于您编写的函数! - )