Es scheint, dass float.is_integer
ist die einzige "ist" -Methode mit einem Unterstrich in seinem Namen unter den integrierten Typen in Python. Examples that don't umfassen einen Unterstrich: str.isalnum
, str.isalpha
, str.isdecimal
, str.isdigit
, str.isidentifier
, str.islower
, str.isnumeric
, str.isprintable
, str.isspace
, str.istitle
, str.isupper
.Warum ein Unterstrich in `float.is_integer`, aber nicht in` str.isnumeric`?
Irgendwelche Hinweise, warum?
Von PEP 8, würde ich erwarten, dass alle diese Namen einen Unterstrich enthalten. Aber die Praktikabilität übertrifft die Reinheit (PEP 20), so dass die Unterstreichung in häufig verwendeten und kurzen Namen sinnvoll ist. Beide Namenskonventionen scheinen jedoch gleichzeitig eine Folge der Rückwärtskompatibilität zu sein (mit dem Modul logging
als kanonisches Beispiel).
Vielleicht weil 'float.is_integer' eine neuere Ergänzung (ab 2.6) ist, lange nachdem PEP8 etabliert wurde? Die 'str'-apis waren wahrscheinlich von Anfang an da und wurden aus Kompatibilitätsgründen nicht verändert (obwohl es wahrscheinlich in 3 hätte sein können). 'float.fromhex' könnte auch potentiell umbenannt werden, ich bin sicher, dass es mehr Fälle in den Standardtypen gibt. –