Python'da str(), int(), float(), vb. Gibi işlevler genellikle tür dönüşümlerini gerçekleştirmek için kullanılır. Bununla birlikte, bunlar, geliştirme süresinde, dönüştürmek istediğiniz türü bilmenizi gerektirir. iki değişken, foo
ve bar
VerilenPython Yansıma ve Yazım Denetimi
, foo
tipini bulmak şu şekildedir: Ben yazmaya çalışıyorum bazı Python koduna subproblem olduğunu. (Bu, genel kod olduğu için geliştirme zamanında bilinmemektedir.) Ardından, 'u foo
türüne dönüştürmeye çalışın. Bu yapılamazsa, bir istisna atın.
Örneğin, bu conv
'u yapan işlevi çağırdığınızı varsayalım.
result = conv(3.14, "2.718") # result is now 2.718, as a float.
Etkileyici. Bu kadar kolay olabileceğini hiç düşünmezdim. Ayrıca şaşırtıcı (Python’da yeniyim ve metal dilleri daha yakına alıyorum), yerleşiklerle çalışıyor olması. – dsimcha
Kısmen yanlış. foo .__ class__, foo yeni stil nesnesiyse yalnızca foo türüdür. Aksi takdirde, sadece sınıf. –
Sadece yanlış, sınıf daha kesin olduğunda 'tip' dedim. Ama bu dönüşüm için sınıfa ihtiyacı var. Ve Python 3'te, fark zaten gitti. – oefe