Каждый объект Python имеет тип, идентификатор и значение? - PullRequest
0 голосов
/ 24 мая 2019

Иногда мы определяем объекты как вещи, которые содержат тип, идентификатор и значение.Иногда мы говорим, что сами ценности являются объектами.Эти два определения противоречат друг другу.Например, для a = 5 мы можем сказать, что есть объект int (вещь), который содержит значение 5, а в других обстоятельствах мы говорим, что 5 само является объектом (следовательно, в этом случае не существует такой вещи, как вещь, котораясодержит значение 5).Эти 2 определения не соответствуют друг другуЯ прохожу задание по питону, и я довольно долго боролся с этим, и я не мог найти правильный ответ на этот вопрос.Некоторые авторы использовали первое определение, а некоторые - второе определение.

1 Ответ

1 голос
/ 24 мая 2019

В python действительно все является объектом, включая 5;Вы можете отобразить id(5) и type(5).

Однако для некоторых объектов идентичность не имеет значения, и вы заботитесь о них только для значения.Эти объекты должны быть неизменными.

Число - это объекты такого типа ... нам нет дела до 5 или 5;сама фраза не звучит логично.5 интересен только своим значением.

Для других объектов (особенно изменяемых) вы вместо этого сильно заботитесь об идентичности: этот список не тот список, даже если оба они пусты.

Хотяиспользование чего-то вроде

 if x is y: ...

было бы очень плохой идеей в Python, если бы x и y были числами или строками, было бы вполне разумно, если бы, например, x и y были list экземпляров.Проблема с идентификацией чисел состоит в том, что если x и y являются числами, и я пишу:

z1 = x + y
z2 = x + y

может быть z1 и z2 в конечном итоге будет одним и тем же объектом (т.е. id(z1) == id(z2)и z1 is z2 возвращает True) или может быть нет (т. е. id(z1) != id(z2) и z1 is z2 возвращает False).

Конечно, однако значение z1 и значение z2будет таким же (т. е. z1 == z2), и это то, что вас волнует при использовании чисел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...