[英]Why two methods with same functionality available in threading module in Python?
对于threading.Thread
,有两个似乎具有相同功能的方法:
is_alive
和isAlive
对于threading.Event
,有以下方法:
is_set
和isSet
类似的threading
模块,同样可以使用这些方法
currentThread
和current_thread
active_count
和activeCount
因此,问题是,尽管看起来这两种方法都具有相同的功能,但为什么有两种方法可用?
另外, 哪一个更好 ?
这是风格问题。 在强调使用下划线样式作为Python样式之前,已经有使用不同样式的库了。 因此,对函数进行了重命名,但是由于兼容性问题,还必须保留旧名称版本。
无论如何, PEP 8建议使用下划线样式,因此我建议坚持使用下划线样式。
通常,Python使用lowercase
或lowercase_with_underscores
作为方法和函数名称 。 threading
模块在首次添加到Python时,错误地为许多名称使用了mixedCase
。 他们后来添加了lowercase_with_underscores
名称作为别名,以与其他Python保持样式一致性。
通常,除非您的代码需要在Python 2.5或更早版本上运行(在2.6中添加了固定名称),否则请使用lowercase_with_underscores
名称。 也就是说, 文档说明 :
注意:从Python 2.6开始,此模块提供了符合PEP 8的别名和属性,以替换受Java线程API启发的camelCase名称。 此更新的API与多处理模块的API兼容。 但是,尚未为弃用camelCase名称设置任何时间表,Python 2.x和3.x仍然完全支持它们。
我不确定100%,但我认为它只是来自不同版本的Python的别名,它们具有相同的功能
原因是保持与旧版Python的兼容性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.