문제

파이썬 문서와 메일 링리스트에서 나는 값이 때때로 "캐스트"이고 때로는 "강제"라는 것을 알 수 있습니다. 차이점은 무엇입니까?

도움이 되었습니까?

해결책

"캐스팅"은 파이썬에 사용해서는 안된다고 생각합니다. 유형 변환 만 있지만 캐스트는 없습니다 (C 의미에서). 유형 변환은 예를 들어 int(o) 객체 O가 정수로 변환되는 경우 (실제로 정수 객체는 O로 구성됩니다). 이진 작업의 경우 강요가 발생합니다. x+y, X와 Y는 다른 유형을 가지며 작업을 수행하기 전에 단일 유형으로 강요됩니다. 2.X에서는 특별한 방법입니다 __coerce__ 물체가 강요를 제어 할 수 있습니다.

다른 팁

캐스트는 명백합니다. 코어는 암시 적입니다.

파이썬의 예는 다음과 같습니다.

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

캐스트는 실제로 C FFI에서만 나타납니다. 일반적으로 C 또는 Java에서 캐스팅이라고 불리는 것은 Python의 변환이라고 불리지만 다른 언어와 유사하기 때문에 종종 캐스팅이라고합니다. 내가 경험 한 거의 모든 언어 (파이썬 포함) 강제 암시 적 유형 변경입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top