W języku Python funkcje takie jak str(), int(), float() itp. Są zwykle używane do przeprowadzania konwersji typów. Jednak wymagają one, abyś wiedział w czasie rozwoju, jaki typ chcesz przekonwertować. Podproblem jakiegoś kodu Pythona, który próbuję napisać, jest następujący:Odbicie w Pythonie i konwersja typów
Biorąc pod uwagę dwie zmienne, foo
i bar
, znajdź typ foo
. (Nie jest to znane w czasie programowania, ponieważ jest to kod ogólny.) Następnie spróbuj przekonwertować bar
na dowolny typ foo
. Jeśli nie można tego zrobić, wyślij wyjątek.
Na przykład powiedzmy, że wywołujesz funkcję, która wykonuje to conv
. Jego podpis będzie wyglądać
def conv(foo, bar) :
# Do stuff.
byłoby nazwać coś takiego:
result = conv(3.14, "2.718") # result is now 2.718, as a float.
Imponujący. Nigdy bym nie pomyślał, że to będzie tak łatwe. Zaskakujące (jestem nowy w Pythonie i bliższy metalowym językom) jest to, że działa z wbudowanymi. – dsimcha
Częściowo niepoprawne. foo .__ class__ to tylko typ foo, jeśli foo jest obiektem w nowym stylu. W przeciwnym razie jest to tylko klasa. –
Niepoprawne tylko dlatego, że powiedziałem "typ", gdy klasa byłaby bardziej precyzyjna. Ale potrzebuje tej klasy do tego nawrócenia. A w Pythonie 3 różnica i tak zniknęła. – oefe