python3, в тексте справки (int), что описываются дескрипторы данных?
Когда вы получаете строку справки для типов int, используя help(int). Самая последняя часть:
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| denominator
| the denominator of a rational number in lowest terms
|
| imag
| the imaginary part of a complex number
|
| numerator
| the numerator of a rational number in lowest terms
|
| real
| the real part of a complex number
Итак, это атрибуты сложного типа и класса дроби, так почему они перечислены здесь относительно целых чисел. Является ли некоторый тип глобального дескриптора данных?
1 ответ
Решение
Дело в том, что complex
а также fractions.Fraction
иметь атрибуты с этими именами и значениями не означает, что у инттов тоже нет таких атрибутов. Разные классы могут иметь одинаковые атрибуты:
>>> (5).denominator
1
>>> (5).imag
0
>>> (5).numerator
5
>>> (5).real
5
Они не какой-то универсальный атрибут или что-то в этом роде. int
Тип просто реализует дескрипторы для этих атрибутов, для взаимодействия с другими числовыми типами. В частности, они были реализованы в соответствии с PEP 3141.