Кастинг по сравнению с приведением в Python

В Windows 10 вы можете запустить команду diff в bash, включив Linux Bash Shell

32
задан Justin R. 21 October 2009 в 16:51
поделиться

2 ответа

Я думаю, что "приведение типов" не следует использовать для Python; есть только преобразование типов, но без приведений (в смысле языка C). Преобразование типа выполняется, например, с помощью int (o) , где объект o преобразуется в целое число (фактически, целочисленный объект создается из объекта o). Принуждение происходит в случае двоичных операций: если вы выполняете x + y , а x и y имеют разные типы, они приводятся к одному типу перед выполнением операции. В 2.x специальный метод __ coerce __ позволяет объекту управлять своим принуждением.

32
ответ дан 27 November 2019 в 20:20
поделиться

Приведение явно. Принуждение является неявным.

Примеры в Python:

cast(2, POINTER(c_float)) #cast
1.0 + 2  #coerce 
1.0 + float(2) #conversion

Приведение действительно появляется только в C FFI. То, что обычно называется преобразованием в C или Java, в Python называется преобразованием, хотя его часто называют преобразованием из-за его сходства с другими языками. Практически на всех языках, с которыми у меня есть опыт (включая Python) Принуждение - это неявное изменение типа.

40
ответ дан 27 November 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: