Các vấn đề python 3 tính năng mới giải quyết là gì? [đóng cửa]


18

Python 3 tính năng mới cho biết:

chúng tôi chủ yếu sửa chữa những phiền toái và mụn cóc nổi tiếng, và loại bỏ rất nhiều hành trình cũ

Nó đề cập đến những gì khác nhau (sửa chữa) nhưng không phải tại sao (các vấn đề). Tôi đã không tìm thấy những vấn đề là gì. Các vấn đề sửa chữa là gì?


1
Tuy nhiên, một trong những mụn cóc, họ đã không loại bỏ, là lý do để phải truyền 'bản thân' cho một phương thức lớp. Tàu hỏa.
Giàn

Câu trả lời:


11

Tôi sẽ chỉ kể tên những người nghĩ đến ngay lập tức.

  • Đối số chỉ từ khóa: Được mô tả trong lý do của PEP.
  • nonlocal: Không có điều này, các bao đóng không thể ghi đè lên các biến đã đóng. Nhu cầu này phát sinh theo thời gian với các nhà trang trí và các chức năng bậc cao khác. Cách giải quyết hợp lý duy nhất (không chuyển đổi API bên ngoài), lưu trữ bất kỳ trạng thái có thể thay đổi nào bạn muốn trong một đối tượng có thể thay đổi, là quá xấu.
  • Từ điển và thiết lập mức độ hiểu: Việc tạo từ điển và bộ theo cách tương tự như cách hiểu danh sách sẽ ít đẹp hơn và chậm hơn một chút khi được thực hiện thông qua việc hiểu máy phát điện. Nó cho phép chúng tôi sử dụng những loại này khi chúng phù hợp mà không phải trả thêm chi phí. Ditto cho tập hợp chữ, đặc biệt là cho incác bài kiểm tra (kể từ Python 3.2, chúng cũng được tối ưu hóa bằng trình tối ưu hóa lổ nhìn trộm).
  • Chữ Octal tồn tại trong Python 2, nhưng 0777ký hiệu là một cạm bẫy cho những người không quen với nó (trong các bối cảnh khác, việc thêm một số 0 thay đổi hàng đầu cũng không thay đổi giá trị cũng như cơ sở).
  • Chữ nhị phân là hữu ích cho bit fiddling, thậm chí moreso hơn chữ thập lục phân.
  • Các ký tự byte là một triệu chứng của sự phân biệt được thi hành giữa các chuỗi unicode và chuỗi byte, và các chuỗi ký tự là unicode. Những thay đổi này buộc bạn phải suy nghĩ về sự khác biệt giữa văn bản và dữ liệu nhị phân không được giải thích và về mã hóa. Điều này quan trọng bởi vì nếu không, bạn cần thử nghiệm rộng rãi (với đầu vào là những kẻ ngu nói tiếng Anh, châu Âu / châu Mỹ hiếm khi nghĩ đến) để tìm lỗi liên quan đến mã hóa.
  • except ex, var-> except ex as varsửa lỗi phổ biến except ValueError, IndexError(phải bắt cả hai, nhưng chỉ bắt lỗi đầu tiên và ghi đè tên IndexErrorbằng ngoại lệ bị bắt).
  • Phạm vi hiểu danh sách: Tránh gây ô nhiễm không gian tên và cho phép nghĩ về chúng theo các biểu thức của trình tạo.
  • Cú pháp và mô-đun đã bị xóa: Đưa chúng ta đến gần hơn "Nên có một - và tốt nhất là chỉ có một cách rõ ràng để làm điều đó." và tránh những người có hướng dẫn kém bám vào cách sửa chữa cũ và bị lỗi.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.