Python belgelerinde ve posta listelerinde, bu değerlerin bazen "döküm" ve bazen "zorla" olduğunu görüyorum. Fark ne?Python'da döküm vs zorlama
cevap
Sanırım "döküm" Python için kullanılmamalıdır; sadece tür dönüşümü vardır, ancak döküm yok (C anlamda). Bir tür dönüşüm yapılır örn. aracılığıyla, nesnenin bir tamsayıya dönüştürüldüğü (aslında, bir tam sayı nesnesi o dışında yapılandırılır). İkili işlemlerde zorlama olur: x+y
yaparsanız ve x ve y farklı türlere sahipse, işlemi gerçekleştirmeden önce tek bir türe zorlanırlar. 2.x'te, __coerce__
özel bir yöntem, nesnenin baskılarını kontrol etmesine izin verir.
Oyuncular açık. Coerce örtülüdür. Python
örnekler şöyle olacaktır:
cast(2, POINTER(c_float)) #cast
1.0 + 2 #coerce
1.0 + float(2) #conversion
Cast gerçekten sadece C FFI içinde çıkageldi. Tipik olarak C veya Java'da döküm olarak adlandırılan, python'da dönüşüm olarak adlandırılır, ancak çoğu zaman diğer dillerle benzerliklerinden dolayı döküm olarak anılır. (Python dahil) Coercion ile deneyime sahip olduğum her dilde, örtülü bir tür değiştirme.
-1. Bu C++ isimlendirmesi; Python farklı terminoloji kullanır. – SamB
+1: Bu soru için, örnek tamamen geçerlidir. Ve açıkça C++ olarak işaretlendi. – user183037
Soru, Python dili bağlamında 'cast' terimi ile ilgilidir. Şamandıra (1) 'in inşaatı değil, yapım olduğunu açıklayan cevap daha iyidir. –