Convertir un entier de 2 octets valeur Hexadécimale en Python

Pour une interface graphique tkinter, je dois lire dans un Hex adresse sous la forme de "0x00" pour définir une adresse I2C. La façon dont je suis en train de faire c'est par la lecture de l'entrée comme une chaîne de caractères, la conversion de la chaîne en un nombre entier, puis de les convertir ce nombre entier à une valeur Hexadécimale, comme indiqué dans la partielle de code ci-dessous:

GUI initialisation:

self.I2CAddress=StringVar()
self.I2CAddress.set("0x00") #Sets Default value of '0x00'
Label(frame, text="Address: ").grid(row=5, column=4)
Entry(frame, textvariable=self.I2CAddress).grid(row=5, column=5)

Puis à l'intérieur de la fonction:

addr = self.I2CAddress.get()   
addrint = int(addr, 16)  
addrhex = hex(addrint)

Cela fonctionne pour la plupart des valeurs, mais mon problème est que si je entrer une petite Hex chaîne de valeur tels que "0x01", il convertit à la bon nombre entier de 1, mais alors qui est convertie en Hexadécimal valeur de 0 x 1 au lieu de 0x01.

Je suis un EE et ont très peu d'expérience de la programmation, de sorte que toute aide est grandement appréciée.

OriginalL'auteur Brett Prudhom | 2013-05-24