В документации Python и в списках рассылки я вижу, что значения иногда приводятся, а иногда - принудительно.
В чем разница между приведением типов и приведением в Python?
Ответы (2)
Я думаю, что для Python не следует использовать «приведение типов»; есть только преобразование типов, но без приведения (в смысле C). Преобразование типа выполняется, например. через int(o)
, где объект o преобразуется в целое число (фактически, целочисленный объект создается из объекта o). Принуждение происходит в случае бинарных операций: если вы выполняете x+y
, а x и y имеют разные типы, они приводятся к одному типу перед выполнением операции. В 2.x специальный метод __coerce__
позволяет объекту управлять своим принуждением.
Приведение явно. Принуждение подразумевается.
Примеры на Python:
cast(2, POINTER(c_float)) #cast
1.0 + 2 #coerce
1.0 + float(2) #conversion
Актерский состав действительно появляется только в C FFI. То, что обычно называется преобразованием в C или Java, в Python называется преобразованием, хотя его часто называют преобразованием из-за его сходства с другими языками. Практически на всех языках, с которыми у меня есть опыт (включая python), Coercion является неявное изменение типа.
float(1)
- это строительство, а не литье, лучше.
- person Carl G; 31.12.2013