387 Stimmen

Ist es in Python möglich, eine Variable nur zu deklarieren, ohne ihr einen Wert zuzuweisen?

Ist es möglich, eine Variable in Python zu deklarieren, etwa so?

var

so dass es auf Keine initialisiert? Es scheint, als ob Python dies erlaubt, aber sobald Sie darauf zugreifen, stürzt es ab. Ist das möglich? Wenn nicht, warum?

EDIT: Ich möchte dies für Fälle wie diesen tun:

value

for index in sequence:

   if value == None and conditionMet:
       value = index
       break

Duplizieren Sie

Verwandte Seiten

1voto

zinturis Punkte 19

Es ist eine gute Frage und leider schlechte Antworten als var = None bereits einen Wert zuweist, und wenn Ihr Skript mehrmals ausgeführt wird, wird es überschrieben mit None jedes Mal.

Es ist nicht dasselbe wie eine Definition ohne Zuordnung. Ich versuche immer noch herauszufinden, wie dieses Problem umgangen werden kann.

1voto

Pasha Punkte 134

Ist es möglich, eine Variable in Python zu deklarieren (var=None):

def decl_var(var=None):
if var is None:
    var = []
var.append(1)
return var

0voto

Du siehst aus, als würdest du versuchen, C in Python zu schreiben. Wenn Sie etwas in einer Sequenz finden wollen, hat Python dafür eingebaute Funktionen, wie

value = sequence.index(blarg)

0voto

Zaur Punkte 383
var_str = str()
var_int = int()

0voto

ZAB Punkte 893

Sie können einen Interpreter mit diesem hässlichen Einzeiler austricksen if None: var = None Es tut nichts anderes, als eine Variable hinzuzufügen var in das Wörterbuch der lokalen Variablen, ohne sie zu initialisieren. Der Interpreter wird die Ausnahme UnboundLocalError auslösen, wenn Sie versuchen, diese Variable anschließend in einer Funktion zu verwenden. Dies würde auch bei sehr alten Python-Versionen funktionieren. Nicht einfach und auch nicht schön, aber erwarten Sie nicht viel von Python.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X