ข้อผิดพลาดของไวยากรณ์: ไม่มีโอกาส


124

ฉันพยายามรันโค้ดต่อไปนี้ใน python IDLE

from __future__ import braces 

และฉันได้รับข้อผิดพลาดต่อไปนี้:

SyntaxError: not a chance

ข้อผิดพลาดข้างต้นหมายถึงอะไร?

คำตอบ:


170

คุณพบไข่อีสเตอร์ใน Python มันคือเรื่องตลก.

หมายความว่าการคั่นบล็อกด้วยเครื่องหมายวงเล็บแทนการเยื้องจะไม่ถูกนำมาใช้

โดยปกติการนำเข้าจากโมดูลพิเศษ__future__จะเปิดใช้งานคุณลักษณะที่เข้ากันไม่ได้ย้อนหลังเช่นprint()ฟังก์ชันหรือการแบ่งจริง

ดังนั้นสายfrom __future__ import bracesจะนำไปหมายความว่าคุณต้องการที่จะเปิดใช้งาน 'สร้างบล็อกที่มีการจัดฟัน' คุณสมบัติและข้อยกเว้นจะบอกคุณโอกาสของการที่เคยเกิดขึ้นเป็นศูนย์

คุณสามารถเพิ่มที่รายการยาวของในเรื่องตลกรวมอยู่ในงูใหญ่เช่นเดียวimport __hello__, และimport this import antigravityนักพัฒนา Python มีอารมณ์ขันที่พัฒนามาอย่างดี!


10
สำหรับคนที่งงงวยกับคำว่า "ไม่ใช่โอกาส" ซึ่งเป็นคำแสลงหมายความว่าไม่มีความเป็นไปได้หรือความน่าจะเป็นของสิ่งที่เกิดขึ้น
DOK

ฉันถามตัวเองว่าในทางทฤษฎีจะเป็นไปได้หรือไม่ที่จะนำสิ่งนั้นมาใช้เป็นส่วนขยายใน python (ฉันไม่ใช่นักพัฒนา python)
hek2mgl


2
@chepner Less Whitespace, More Enterprise: D ขอบคุณ!
hek2mgl

2
@dumbledad: Haskell, CoffeeScript, Miranda, Occam และ F # ทั้งหมดใช้ช่องว่างในไวยากรณ์ หมายเหตุ: เธรดความคิดเห็นนี้ใกล้จะหมดแล้ว โปรดเข้าร่วมห้องสนทนา Pythonหากคุณต้องการพูดคุยเพิ่มเติม
Martijn Pieters

29

โดย__future__ปกติโมดูลนี้จะใช้เพื่อให้คุณลักษณะต่างๆจาก Python เวอร์ชันอนาคต

นี่คือไข่อีสเตอร์ที่สรุปความรู้สึกของนักพัฒนาเกี่ยวกับปัญหานี้

มีอีกมากมาย:

import this จะแสดงเซนของ Python

import __hello__Hello World...จะแสดง

ใน Python 2.7 และ 3.0 import antigravityจะเปิดเบราว์เซอร์เป็นการ์ตูน!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.