Sollte ich die Initialisierung von Variablen in Blöcken vermeiden?Python

Python-Programme
Anonymous
 Sollte ich die Initialisierung von Variablen in Blöcken vermeiden?

Post by Anonymous »

Ich habe einen Code wie diesen < /p>

Code: Select all

if condition:
a = f(x)
else:
a = g(y)
Initialisierung eines innerhalb des Blocks sieht für mich schlecht aus. Kann es besser geschrieben werden?

Code: Select all

a = f(x) if condition else g(y)
dauert mehr als 79 (manchmal sogar mehr als 119) Symbole mit echten Namen anstelle von , f , g , x , y und Bedingung . Funktionen von Defaul, da beide Funktionen langsam sind und ich keinen Overhead < /p>
zulassen kann

Code: Select all

a = g(y)
if condition:
a = f(x)
Ich kann die Variable mit keinem initialisieren, aber ist diese Lösung ziemlich genug?

Code: Select all

a = None
if condition:
a = f(x)
else:
a = g(y)
< /code>
Lassen Sie mich meine Position erklären: In C- und C ++ - Variablen innerhalb eines Blocks haben Sie den Block als Umfang. In ES6 wurde das Schlüsselwort 
eingeführt - es ermöglicht das Erstellen von Variablen mit denselben Scoping -Regeln wie Variablen in C und C ++. Variablen, die mit altem VAR < /code> Schlüsselwort definiert sind, haben ähnliche Scoping -Regeln wie in Python.

Code: Select all

for obj in gen:
# do something with the `obj`
if predicate(obj):
try:
result = f(obj)
except Exception as e:
log(e)
continue
else:
result = g(obj)
# do something useful with the `result`
else:
result = h(obj)

display(result)
Ich gehe Elemente eines Generators gen durch, verarbeite sie und führe einige Aktionen für das Ergebnis bei jeder Iteration durch. lesbar?

Code: Select all

else
/

Code: Select all

for
/etc. in Python?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post