Das ist das selbe wie bei hex. Man braucht lediglich Methoden zum konvertieren und ist IMHO glücklich:
Code: Alles auswählen
def bin(number, signed=False):
"""
Return binary representation of an integer
Parameters:
- number<int> the number to represent
- signed<bool> if true we have signed representation
"""
number = int(number)
if not number:
return "0"
if not signed:
number = abs(number)
# compute the count of needed bits
bits = int((math.log(abs(number))/math.log(2))+1)
bin = "".join([ "01"[number>>x & 1] for x in xrange(bits-1,-1,-1)])
return "%s%s" % ((number < 0 and "1" or "0"), bin)
# Die andere Richtung:
int(bin(4711), 2)
Nein, Ducktyping bedeutet das es einer Klasse/Funktion egal ist von welchem Typ ein übergebenes Objekt ist. Hauptsache es verhält sich so.pütone hat geschrieben: Aus Sicht dessen, der mit Dual() arbeitet, ist es doch duck-typing, oder nicht? Er gibt irgend eine Zahl ein und entsprechend der Art der eingegebenen Zahl wird darauf reagiert. Entweder mit einer entsprechenden Verarbeitung oder mit einem ValueError.
In diesem fall sollte das heißen das jedes Objekt akzeptiert werden sollte das die __int__ Methode unterstützt. Egal welches Objekt dahinter steckt und wie komplex es ist.