Tôi hiểu đó là một trò đùa trong đó có nghĩa là để ở lại (giống như "from __future__ import braces
"), nhưng chính xác những gì nó làm gì?Vậy chính xác “từ __future__ nhập khẩu barry_as_FLUFL” làm gì?
Trả lời
Nó liên quan đến PEP 0401: BDFL Retirement
Barry đề cập đến Barry Warsaw, một nhà phát triển Python nổi tiếng. Các from __future__ import barry_as_FLUFL
về cơ bản thay thế các nhà điều hành !=
với <>
.
Trò đùa tháng tư Fool PEP 0401 thực sự hài hước và do đó thực hiện hiện tại. Nó hoạt động rất tốt tương tác từ thiết bị đầu cuối hoặc bởi python3 -i
từ đầu vào standart, nhưng đáng ngạc nhiên không phải từ một kịch bản bình thường hoặc không có -i
. Nó hoạt động bằng cách eval(...)
hoặc bằng compile(..)
theo cách này:
exec(compile('1<>0', 'foo', 'single', __future__.CO_FUTURE_BARRY_AS_BDFL))
Đúng hơn vui hơn khủng khiếp !=
gây đau ngón tay
Câu trả lời hay vì nó giải thích rằng điều này không "hoạt động" trong một kịch bản thông thường. Nhưng tôi không chắc chuyện gì sẽ xảy ra với câu cuối ...? Các định dạng và dấu chấm câu trông phần đùa, phần bất cẩn, một phần phá hoại. Tôi không thể nói được. –
Ồ, cũng để làm rõ: ngay cả khi bạn sử dụng '-i', tập lệnh được thực thi trước khi bạn tới REPL phải tuân theo cú pháp Python 3 bình thường, hoặc bạn sẽ gặp lỗi cú pháp. Và nếu bạn gặp lỗi cú pháp trong tập lệnh, thì REPL sẽ hoạt động như thể bạn chưa bao giờ nhập. (Bạn chỉ phải làm điều đó một lần nữa tại REPL, nhưng điều đó đã đánh bại điểm đặt nó trong kịch bản của bạn ngay từ đầu.) OK nếu kịch bản tăng (nhiều nhất?) Các loại ngoại lệ khác mặc dù; việc nhập sẽ vẫn có hiệu lực khi bạn bị bán phá giá cho REPL trong trường hợp đó. –
Như đã đề cập ở trên, barry là Barry Warsaw, một nổi tiếng Core Python Dev Tuy nhiên, FLUFL vẫn chưa được giải thích
Nó là viết tắt của "Ngôn ngữ thân thiện Bác Đối với cuộc sống" một trò đùa bên trong các devs lõi python khác vào thời điểm đó. Lý do điều này cho phép cú pháp <>
, là anh ta là người chính muốn sử dụng toán tử <>
Chỉ khoe khoang ở đây, nhưng tôi đã tham dự một cuộc thi Hack lõi Python với Barry và chúng tôi đã có một số câu chuyện thú vị để chia sẻ niềm vui :) Điều này tương tự như Nhà độc tài Benevolent của Guido van Rossum (BDFL). Anh ấy là một chàng trai thực sự tốt đẹp :) – MicroTransactionsMatterToo
- 1. Sử dụng từ __future__ nhập khẩu Mako mẫu
- 2. Tôi có thể sử dụng "từ __future__ nhập unicode_literals" trong tệp nhập chính không?
- 3. những gì hiện "từ MODULE nhập khẩu _" làm trong python?
- 4. Phiên bản python nào cần nhập từ __future__ with_statement?
- 5. từ. nhập khẩu XXXX
- 6. offsetLeftAndRight() chính xác làm gì?
- 7. TypeScript - 'nhập khẩu' là gì?
- 8. Làm cách nào để lưu trữ mật khẩu * chính xác *?
- 9. làm thế nào để làm cho phpMyAdmin nhập datetime một cách chính xác từ csv?
- 10. Python nhập chính xác như thế nào?
- 11. nhập khẩu RelatedManager từ django.db.models.fields.related
- 12. FillMode làm gì chính xác?
- 13. từ. nhập khẩu * từ mô-đun
- 14. Nhập này chính xác có ý nghĩa gì trong Scala?
- 15. Tại sao `sudo` Chậm khi Mật khẩu không chính xác?
- 16. Sửa đổi một biến trong một module nhập khẩu sử dụng từ ... nhập khẩu *
- 17. ntohs() trong pcap chính xác làm gì?
- 18. Trong Express, app.router làm gì chính xác?
- 19. Whats pg_escape_string chính xác làm gì?
- 20. Tệp Jar THÊM NHẬP KHẨU NHẬP KHẨU Tùy chọn Eclipse trong khi xuất khẩu jar
- 21. Python: nhập khẩu vào đầu chương trình chính & PEP 8
- 22. Chính xác thì removeOnCompletion = NO làm gì?
- 23. Vì vậy, những lợi thế chính xác của Fragments trong Android 3.0 là gì?
- 24. Chính xác những gì System.Diagnostics.Process UseShellExecute làm gì?
- 25. Rails không thể đăng nhập vào postgresql - PG :: Lỗi - mật khẩu - thông tin chính xác
- 26. Python "từ xxx xxx.yyy nhập khẩu" lỗi
- 27. chính xác lưới 960 làm gì?
- 28. Chính xác thì org.apache.commons.lang.builder.CompareToBuilder làm gì?
- 29. Lệnh BEQ làm gì chính xác?
- 30. Chính xác là gì?
Cảm ơn bạn. Tôi đã chỉnh sửa câu trả lời của bạn bởi vì nó có một sự nhầm lẫn rõ ràng :) – tzot
Quan trọng hơn, nó cho phép cú pháp '<>' trong Python 3. –
Liên kết cho biết câu lệnh 'print' cũng đã trở lại. – manojlds