2016-11-18 2 views
5

Ist es möglich, eine Nummer im Namen einer anderen Nummer zu übertragen? Ich habe dieses versucht, aber Typ gibt eine Zeichenfolge zurück.Werfen Sie einen Wert mit einem anderen Werttyp

n = 1.34 
i = 10 
type(i)(n) 
+0

können Sie ein bisschen erarbeiten, dann wird es einfach für uns sein, zu helfen. –

+11

Ihr Beispiel funktioniert. –

+1

Warum müssen Sie das tun? In Python, sollten Sie im Allgemeinen nicht interessieren, welcher Typ das Objekt ist, –

Antwort

4

Wie bereits erwähnt, Ihr Beispiel funktioniert:

>>> from decimal import Decimal 
>>> a = 5 
>>> b = 5.0 
>>> c = Decimal(5) 
>>> type(a) 
<class 'int'> 
>>> type(b) 
<class 'float'> 
>>> type(c) 
<class 'decimal.Decimal'> 

Guss b (float) als der Typ (int):

>>> type(a)(b) 
5 

Cast a (int) als b-Typ (float):

>>> type(b)(a) 
5.0 

Cast a (int) als C-Typ (Decimal):

Beachten Sie, dass Pythons Duck-Typisierung diese Art von Casting oft unnötig macht, obwohl ich mir einige Szenarien vorstellen kann, in denen es nützlich wäre.

Verwandte Themen