Eine dumme Frage, aber das nervt mich (unabhängig von Downvotes für meine Schwachsinnigkeit!): Ich glaube, ich habe eine unsinnige Angst davor, Daten außerhalb einer Methode zu generieren, die diese Methode verwendet (ohne Veränderung), aber ich bin unsicher Wenn dies der Fall ist.
Nehmen wir an, ich habe eine Methode myfx
, die ein Wörterbuch datadex
benötigt, das eine langwierige Operation erfordert, aber allen Anrufen während dieser Sitzung gemeinsam ist. Der einfachste, aber nicht machbare Weg ist:
aber das wird zu viel Zeit verschwenden. Also wäre es am besten, es einmal im Hauptbereich zu machen, so wie man es mit Klassenvariablen macht:
%Vor%Allerdings weiß ich nicht warum, aber ich bemühe mich, dies zu vermeiden. Es ist unelegant, aber ich denke nicht, dass das der Fall ist. Ich gehe generell auf Sperrungen:
%Vor%Oder schlimmer, einen Kurs zu machen. Ich code fast ausschließlich in Python und JS. Meine beste Vermutung ist, dass es eine Reminiszenz an meine Perl-Coding-Tage ist - ich finde, dass ich Variablen zuerst als Pascal schreibe, also denke ich, dass einige Gewohnheiten als Schatten bleiben -, aber das würde nicht die Klasse oder Schließung wie OO-Perl erklären ganz anders.
Eine Klasse ist der richtige Weg, um dieses Verhalten zu kapseln. Sie haben einige Daten, die von mehreren Funktionsaufrufen gemeinsam genutzt werden.
%Vor%Obwohl es sicherlich noch andere Alternativen gibt, wird dies die gängigste und einfachste Methode in Python sein.
Tags und Links python