Wenn das Ziel darin besteht, Ihnen zu helfen, den Überblick über Ihre Variablen zu behalten, können Sie eine einfache Funktion schreiben, die die Variable benennt und ihren Wert und Typ zurückgibt. Nehmen wir an, i_f=3,01 und Sie runden sie auf eine ganze Zahl namens i_n ab, um sie in einem Code zu verwenden, und dann benötigen Sie einen String i_s, der in einen Bericht aufgenommen wird.
def wasist(string, x):
print(string+' Wert=',repr(x),type(x))
return string+' Wert='+repr(x)+repr(type(x))
i_f=3,01
i_n=int(i_f)
i_s=str(i_n)
i_l=[i_f, i_n, i_s]
i_u=(i_f, i_n, i_s)
## Bericht erstellen, der alle Typen identifiziert
bericht='\n'+20*'#'+'\nDies ist der Bericht:\n'
bericht+= wasist('i_f ',i_f)+'\n'
bericht+=wasist('i_n ',i_n)+'\n'
bericht+=wasist('i_s ',i_s)+'\n'
bericht+=wasist('i_l ',i_l)+'\n'
bericht+=wasist('i_u ',i_u)+'\n'
print(bericht)
Dies wird bei jedem Aufruf zum Debuggen auf das Fenster gedruckt und liefert auch einen String für den schriftlichen Bericht. Der einzige Nachteil ist, dass Sie jedes Mal, wenn Sie die Funktion aufrufen, die Variable zweimal eingeben müssen.
Ich bin ein Python-Neuling und fand diese Methode sehr nützlich, um meine Bemühungen zu protokollieren, während ich programmiere und versuche, mit allen Objekten in Python umzugehen. Ein Fehler ist, dass das wasist() versagt, wenn es eine außerhalb des Verfahrens beschriebene Funktion aufruft. Zum Beispiel war int(i_f) nur deshalb ein gültiger Funktionsaufruf, weil die int-Funktion Python bekannt ist. Sie könnten wasist() mit int(i_f**2) aufrufen, aber wenn Sie aus irgendeinem seltsamen Grund beschließen, eine Funktion namens int_squared zu definieren, muss sie innerhalb des Verfahrens deklariert werden, in dem wasist() verwendet wird.