看来,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
。为什么`float.is_integer`中的下划线,而不是`str.isnumeric`中的下划线?
任何线索为什么?
通过PEP 8,我希望所有这些名称都包含下划线。但实用性胜过纯度(PEP 20),所以在常用短名称中省略下划线是有道理的。然而,这两种命名惯例似乎都是向后兼容的结果(以logging
模块作为典型例子)。
也许是因为'float.is_integer'是PEP8建立后很久以前的一个新增加(2.6)? 'str' apis可能从一开始就存在,并且由于兼容性原因没有改变(尽管它可能在3)。 'float.fromhex'也可能被重命名,我相信在整个标准类型中会有更多的案例可以找到。 –