Ich versuche, ein tieferes Verständnis in Pythons Datenmodell zu bekommen, und ich verstehe den folgenden Code nicht vollständig:
%Vor% Aus den obigen Gründen scheint int
und number.Integral
nicht in derselben Hierarchie zu liegen.
Aus der Python-Referenz (2.6.6) sehe ich
numbers.Integral - Dies sind Elemente aus dem mathematischen Satz von ganzen Zahlen (positiv und negativ).
Was ist der Unterschied zwischen int
und numbers.Integral
? Hat es etwas mit der type int
vs class numbers.Integral
zu tun, die ich in der obigen Ausgabe sehe?
numbers
definiert eine Hierarchie abstrakter Klassen, die für numerische Typen mögliche Operationen definieren. Siehe PEP 3141 . Der Unterschied zwischen int
und Integral
besteht darin, dass int
ein konkreter Typ ist, der alle Operationen Integral
definiert unterstützt.
Erlaube mir, zwei Dinge hinzuzufügen:
%Vor% deckt auch long
und
nicht. Der numbers.Integral
-Test wäre näher bei
in Python 2 (Python 3 hat long
für immer beendet.)
Ich bevorzuge den Test mit numbers.Integral
, denn wenn Sie von int
(oder long
) ableiten, bleibt isinstance(y, numbers.Integral)
immer noch True
.
Tags und Links python