Ich verstehe, es ist ein Insider-Witz, der bleiben soll (genau wie "from __future__ import braces
"), aber was genau macht es?Also was genau macht "aus __future__ import barry_as_FLUFL"?
Antwort
Es ist zu PEP 0401: BDFL Retirement Zusammenhang
Barry bezieht sich auf Barry Warschau, einem bekannten Python-Entwickler. Der from __future__ import barry_as_FLUFL
ersetzt im Wesentlichen den !=
Operator mit <>
.
Der Aprilscherz PEP 0401 ist wirklich lustig und so seine aktuelle Umsetzung. Es funktioniert sehr gut interaktiv vom Terminal oder python3 -i
aus dem Standart-Eingang, aber überraschenderweise nicht von einem normalen Skript oder ohne -i
. Es funktioniert durch eval(...)
oder durch compile(..)
diese Weise:
exec(compile('1<>0', 'foo', 'single', __future__.CO_FUTURE_BARRY_AS_BDFL))
Wahre mehr lustig als schrecklich !=
die Finger Schmerzen verursacht
Große Antwort, da es erklärt, dass dies in einem normalen Skript nicht funktioniert. Aber ich bin mir nicht sicher, was mit dem letzten ... Satz los ist? Die Formatierung und Interpunktion sieht Teil Witz, Teil Sorglosigkeit, Teil Vandalismus. Ich kann es einfach nicht sagen. –
Oh, auch, um zu verdeutlichen: Selbst wenn Sie '-i' verwenden, muss das Skript, das ausgeführt wird, bevor Sie an die REPL gelangen, der normalen Python 3-Syntax folgen oder Sie erhalten einen Syntaxfehler. Und wenn Sie im Skript einen Syntaxfehler erhalten, verhält sich die REPL so, als hätten Sie den Import nie ausgeführt. (Sie müssen es nur noch einmal an der REPL machen, aber das ist der Punkt, an dem es überhaupt in Ihr Skript eingefügt wird.) Es ist in Ordnung, wenn das Skript (meistens?) Andere Arten von Ausnahmen auslöst; Der Import wird immer noch wirksam sein, wenn Sie in diesem Fall an die REPL übergeben werden. –
Wie oben erwähnt, ist Barry Warschau, ein bekannter Kern Python Dev Allerdings hat die FLUFL nicht erklärt worden
Es steht für "Friendly Language Uncle For Life", ein Insider-Witz unter den anderen Python-Core-Entwicklern seiner Zeit. Der Grund, warum dies die <>
Syntax ermöglicht, ist, dass er die primäre Person war, die den <>
Operator
Ich prahlte nur hier, aber ich besuchte einen Core Python Hackathon mit Barry und wir hatten Spaß daran, amüsante Geschichten zu erzählen :) Das ist Guido van Rossums Benevolent Dictator for Live (BDFL) ähnlich. Er ist ein wirklich netter Typ :) – MicroTransactionsMatterToo
- 1. Was genau macht offsetLeftAndRight()?
- 2. Was genau macht fillMode?
- 3. Was genau macht rangeOfCharacterFromSet?
- 4. Was genau macht Panel.IsItemsHost?
- 5. Was genau macht Numpy.exp()?
- 6. Was genau macht fitSystemWindows?
- 7. Was genau macht der Operator ==?
- 8. 'von __future__ import unicode_literals' in Django Migrationen
- 9. Was genau macht 'Mutex lock'?
- 10. Was genau macht System.Diagnostics.Process UseShellExecute?
- 11. Irgendwelche __future__ Import für Range-Xrange Inkompatibilität?
- 12. Was genau macht "setup.py clean"?
- 13. Was genau macht> $ null?
- 14. Was macht Chef :: Log.info genau?
- 15. Was genau macht dieser Terminalkommando?
- 16. Was genau macht ime() Selen?
- 17. Was genau macht win32com.client.Dispatch ("WScript.Shell")?
- 18. Was genau macht -march = native?
- 19. Was macht '#' genau in C?
- 20. Was genau macht die Datenbanknormalisierung?
- 21. Was genau macht gc_heap :: plan_phase?
- 22. WCF: Was genau macht IsInitiating?
- 23. Was genau macht $ (...). Map() zurück?
- 24. Was macht CGAffineTransformMakeRotation (RADIAN) genau?
- 25. was genau macht grid 960?
- 26. Warum verursacht von __future__ import * einen Fehler?
- 27. von __future__ Import Verwendung in Mako Vorlage
- 28. Wie behandelt Python "from __future__ import division"?
- 29. Was genau macht der c-Ausdruck "c_" genau?
- 30. In Express, was macht app.router genau?
Danke verwenden wollte. Ich bearbeitete Ihre Antwort, weil es eine offensichtliche Missteak hatte :) – tzot
Noch wichtiger ist, ermöglicht es '<>' Syntax in Python 3. –
Der Link sagt, die 'print'-Anweisung ist auch zurück. – manojlds