Als Python-Programmierer fällt die ungarische Notation ziemlich schnell auseinander. In Python, es ist mir egal , wenn etwas ist ein String - ist mir egal , ob es kann wie wirken eine Zeichenfolge (dh , wenn es ein hat___str___()
Methode , die einen String zurückgibt).
Nehmen wir zum Beispiel an, wir haben foo als Ganzzahl 12
foo = 12
Die ungarische Notation sagt uns, dass wir das iFoo oder so nennen sollten, um es als Ganzzahl zu bezeichnen, damit wir später wissen, was es ist. Außer in Python funktioniert das nicht oder macht keinen Sinn. In Python entscheide ich, welchen Typ ich möchte, wenn ich ihn verwende. Will ich eine schnur gut wenn ich so etwas mache:
print "The current value of foo is %s" % foo
Beachten Sie die %s
- Zeichenfolge. Foo ist keine Zeichenfolge, aber der %
Operator ruft foo.___str___()
das Ergebnis auf und verwendet es (vorausgesetzt, es existiert). foo
ist immer noch eine Ganzzahl, aber wir behandeln sie als Zeichenfolge, wenn wir eine Zeichenfolge möchten. Wenn wir einen Float wollen, dann behandeln wir ihn als Float. In dynamisch typisierten Sprachen wie Python ist die ungarische Notation sinnlos, da es keine Rolle spielt, um welchen Typ es sich handelt, bis Sie ihn verwenden. Wenn Sie einen bestimmten Typ benötigen, stellen Sie einfach sicher, dass Sie ihn in diesen Typ umwandeln (zfloat(foo)
) benutze es.
Beachten Sie, dass dynamische Sprachen wie PHP diesen Vorteil nicht haben - PHP versucht, im Hintergrund das Richtige zu tun, basierend auf einem obskuren Regelwerk, das fast niemand auswendig gelernt hat, was häufig unerwartet zu katastrophalen Problemen führt. In diesem Fall kann eine Art Benennungsmechanismus wie $files_count
oder $file_name
nützlich sein.
Aus meiner Sicht ist die ungarische Notation wie Blutegel. Vielleicht waren sie in der Vergangenheit nützlich, oder zumindest schienen sie nützlich zu sein, aber heutzutage ist es nur eine Menge zusätzlicher Eingaben, die nicht viel Nutzen bringen.