似乎float.is_integer
是唯一的“is”方法,其名称中的下划线在Python中的内置类型中。 Examples that don't包括下划线:str.isalnum
,str.isalpha
,str.isdecimal
,str.isdigit
,str.isidentifier
,str.islower
,str.isnumeric
,str.isprintable
,str.isspace
,str.istitle
,str.isupper
。
有关原因的任何线索?
按PEP 8,我希望所有这些名称都包含下划线。但实用性胜过纯度(PEP 20),因此省略常用和短名称中的下划线是有道理的。但是,这两个命名约定似乎都是向后兼容的结果(使用logging
模块作为规范示例。)
答案 0 :(得分:2)
Python bug跟踪器上已询问similar question:
将
isinstance
,issubclass
和islower
与is_integer
,is_fifo
和is_enabled
进行比较。在Python 3.6中,在标准库中以is
开头的所有名称中,我使用下划线计数69个名称,而不使用91。选择一种方式或另一种方式似乎更好并坚持下去。我建议使用下划线,以便易读。
答案(来自R. David Murray,Python核心开发人员)有:
是的,那会很好。但随着时间的推移,Python已经发展,我们必须保持向后兼容性。名字就是它们的名字。
考虑到问题中的数字,似乎is_integer
不是唯一带下划线的方法。