2009-10-21 20 views

cevap

30

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.

38

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.

+2

-1. Bu C++ isimlendirmesi; Python farklı terminoloji kullanır. – SamB

+12

+1: Bu soru için, örnek tamamen geçerlidir. Ve açıkça C++ olarak işaretlendi. – user183037

+2

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. –