คุณสมบัติใหม่ของ python 3 คืออะไรแก้ปัญหาได้บ้าง? [ปิด]


18

คุณลักษณะใหม่ของ Python 3 บอกว่า:

เรามักจะแก้ไขสิ่งที่น่ารำคาญและหูดที่รู้จักกันดีและกำจัด cruft เก่าจำนวนมาก

มันกล่าวถึงสิ่งที่แตกต่าง (การแก้ไข) แต่ไม่ใช่สาเหตุ (ปัญหา) ฉันไม่พบสิ่งที่เป็นปัญหา ปัญหาที่แก้ไขได้แก้ไขได้อย่างไร


1
หูดหนึ่งอย่างไรก็ตามพวกเขาไม่ได้ลบออกเป็นเหตุผลที่ต้องส่ง 'ตัวเอง' ไปยังวิธีการเรียน รถไฟล้มเหลว
Rig

คำตอบ:


11

ฉันจะตั้งชื่อคนที่นึกถึงทันที

  • อาร์กิวเมนต์คำหลักเท่านั้น: อธิบายไว้ในเหตุผลของ PEP
  • nonlocal: หากไม่มีสิ่งนี้การปิดจะไม่สามารถเขียนทับตัวแปรที่ปิดอยู่ได้ ความต้องการนี้เกิดขึ้นเป็นครั้งคราวด้วยมัณฑนากรและฟังก์ชั่นการสั่งซื้อขั้นสูงอื่น ๆ วิธีแก้ปัญหาที่สมเหตุสมผลเพียงอย่างเดียว (โดยไม่ต้องเปลี่ยน API ภายนอก) ซึ่งเก็บสถานะไม่แน่นอนใด ๆ ที่คุณต้องการในวัตถุที่ไม่แน่นอนนั้นน่าเกลียดมากเกินไป
  • ความเข้าใจในพจนานุกรมและการตั้งค่า: การสร้างพจนานุกรมและชุดในลักษณะที่คล้ายกับรายการความเข้าใจจะน้อยและช้าลงเล็กน้อยเมื่อดำเนินการผ่านความเข้าใจของตัวสร้าง มันช่วยให้เราสามารถใช้ประเภทเหล่านี้ตามที่เหมาะสมโดยไม่มีค่าใช้จ่ายเพิ่มเติม เหมือนกันสำหรับชุดตัวอักษรโดยเฉพาะอย่างยิ่งสำหรับinการทดสอบ (ณ Python 3.2 เหล่านี้ยังได้รับการปรับให้เหมาะสมโดยเครื่องมือเพิ่มประสิทธิภาพตาแมว)
  • มีตัวอักษร Octal อยู่ใน Python 2 แต่0777สัญกรณ์เป็นข้อผิดพลาดสำหรับสิ่งที่ไม่คุ้นเคย (ในบริบทอื่น ๆ การเพิ่มศูนย์นำหน้าจะไม่เปลี่ยนแปลงค่าหรือฐาน)
  • ตัวอักษรไบนารีมีประโยชน์สำหรับการเล่นบิตแม้กระทั่ง moreso มากกว่าตัวอักษรฐานสิบหก
  • ตัวอักษรไบต์เป็นอาการของความแตกต่างที่บังคับใช้ระหว่างสตริง Unicode และสตริงไบต์และตัวอักษรสตริงเป็นยูนิโค้ด การเปลี่ยนแปลงเหล่านี้บังคับให้คุณคิดถึงความแตกต่างระหว่างข้อความและข้อมูลไบนารีที่ไม่ถูกตีความและเกี่ยวกับการเข้ารหัส เรื่องนี้เป็นอย่างอื่นเพราะคุณจำเป็นต้องมีการทดสอบอย่างกว้างขวาง (ด้วยการป้อนข้อมูลให้เราพูดภาษาอังกฤษคนโง่ยุโรป / อเมริกาเป็นศูนย์กลางไม่ค่อยเคยคิด) เพื่อค้นหาข้อผิดพลาดที่เกี่ยวข้องกับการเข้ารหัส
  • except ex, var-> except ex as varแก้ไขข้อผิดพลาดทั่วไปexcept ValueError, IndexError(ควรจับทั้งคู่ แต่จับได้เพียงชื่อแรกและเขียนทับชื่อIndexErrorด้วยข้อยกเว้นที่จับได้)
  • การกำหนดขอบเขตความเข้าใจรายการ: หลีกเลี่ยงการสร้างเนมสเปซที่สกปรกและอนุญาตให้คิดในแง่ของนิพจน์เครื่องกำเนิดไฟฟ้า
  • ลบไวยากรณ์และโมดูล: นำเราเข้าใกล้ "ควรมี - และควรมีวิธีเดียวเท่านั้น - เห็นได้ชัดว่าควรทำ" และหลีกเลี่ยงผู้ที่มีบทเรียนที่ไม่ดีซึ่งติดอยู่กับวิธีการแก้ไขสิ่งเก่า ๆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.