sách gpt4 ăn đã đi

Sau khi đọc các tính năng mới của Python 3.10, tôi quyết định không cập nhật

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 27 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Sau khi đọc bài viết trên blog CFSDN này về các tính năng mới của Python 3.10, tôi quyết định không cập nhật nó và để tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

  。

Python3.10 được phát hành vào ngày 3 tháng 10 năm 2021. Đã một tháng rồi. Tôi tin rằng mọi người đều đã nghe nói về các tính năng mới của nó, nhưng tôi quyết định không cập nhật phiên bản mà tôi hiện đang sử dụng là Python3.8 mà không hề thấy khó chịu. Hãy để tôi cho bạn biết lý do tại sao tôi không cập nhật.

1. Các thư viện liên quan có thể chưa theo dõi.

Nếu bạn cập nhật lên phiên bản mới nhất, liệu mã hiện có vẫn có thể chạy bình thường mà không cần sửa đổi? Đây là câu hỏi đầu tiên cần xem xét.

Các thư viện bên thứ ba của Python đều dựa trên sức lao động của các tình nguyện viên nguồn mở. Họ thực hiện miễn phí những công việc rất có giá trị và cần có thời gian để thích ứng với các phiên bản Python mới. Ngoài ra, do việc nâng cấp có sự tham gia của nhiều nhóm khác nhau nên việc phối hợp và phát hành sẽ mất nhiều thời gian hơn.

2. Nhiều tính năng mới không có giá trị sử dụng

Cùng điểm qua những tính năng mới vô dụng của Python 3.10 (ý kiến ​​cá nhân, các bạn có thể bình luận ở phần bình luận):

1. Dấu ngoặc đơn có thể được thêm vào bằng.

Ví dụ:

 
  1. với ( 
  2.     CtxManager1() BẰNG ví dụ 1, 
  3.     CtxManager2() BẰNG ví dụ 2, 
  4.     CtxManager3() BẰNG ví dụ 3, 
  5. ): 
  6.     ... 

Về cơ bản tôi không sử dụng cái này và tôi không biết loại tình huống nào cần phải viết như thế này. Nếu có nhiều bối cảnh, tôi sẽ chỉ viết thêm một vài bối cảnh nữa. Nếu example1 và example2 có liên quan với nhau, tôi có thể lồng chúng vào nhau:

 
  1. với CtxManager1() BẰNG Ví dụ 1: 
  2.     với CtxManager2() BẰNG Ví dụ 2: 
  3.         ... 
  4.     ... 

Chẳng phải hệ thống phân cấp sẽ rõ ràng hơn nếu viết theo cách này sao?

2. Trường hợp trùng khớp là Huahua Changzi

Python3.10 thêm các từ khóa mềm khớp và viết hoa chữ thường. Từ khóa mềm là gì? Mặc dù là từ khóa nhưng nó có thể được sử dụng làm tên biến. Mặc dù vậy, bạn chắc chắn không muốn để match trở thành tên biến của mình, vì cách này sẽ không có lỗi nào được báo cáo:

trận đấu khớp: #Trận đấu cuối cùng là tên biến.

 
  1. match match: #Trận đấu cuối cùng là tên biến 
  2.     trường hợp trường hợp
  3.         <hoạt động

Cú pháp của match case trong 3.10 như sau:

 
  1. chủ đề phù hợp: 
  2.     trường hợp 
  3.          
  4.     trường hợp 
  5.          
  6.     trường hợp 
  7.          
  8.     trường hợp _: 
  9.          

Có rất nhiều công dụng của nó, một số trong đó tôi khó có thể hiểu được. Ví dụ: hãy bắt đầu với một cách đơn giản:

 
  1. def match_errno(errno): 
  2.     trận đấu errno: 
  3.         trường hợp 0: 
  4.             vượt qua 
  5.         trường hợp 1: 
  6.             vượt qua 
  7.         trường hợp 42: 
  8.             in("42!"
  9.         trường hợp _: 
  10.             in("dấu hoa thị"

Có một _ ở đây có nghĩa là không có ai khớp, tương đương với một giá trị mặc định, nhưng _ ban đầu được dùng để biểu thị một biến không còn được sử dụng sau này. Nếu nó được gọi như thế này, mặc dù giải thích là hợp lý nhưng nó luôn luôn như vậy. cảm thấy kỳ lạ:

 
  1. >>> _ = 42 
  2. >>> lỗi khớp(_) 
  3. 42! 

Đây là một cái khác phức tạp hơn một chút:

 
  1. def command_split(lệnh): 
  2.     lệnh khớp.split(): 
  3.         trường hợp ["làm"]: 
  4.             in("mặc định thực hiện"
  5.         trường hợp ["làm", lệnh]: 
  6.             in(f"lệnh make tìm thấy: {cmd}"
  7.         trường hợp ["khởi động lại"]: 
  8.             in("khởi động lại"
  9.         trường hợp ["r", *tệp]: 
  10.             in(f"đang xóa các tập tin: {tập tin}"
  11.         trường hợp _: 
  12.             in("không khớp"

Thoạt nhìn, tôi nghĩ có gì đó không ổn với cmd và các tệp này là các biến không xác định, nhưng chúng có thể được sử dụng trong các biểu thức trường hợp, nhưng không có vấn đề gì trong hoạt động thực tế:

 
  1. lệnh_chia("làm"
  2. lệnh_chia("làm sạch"
  3. lệnh_chia("khởi động lại"
  4. lệnh_chia("rm a b c"
  5.  
  6. mặc định làm 
  7. # lệnh make tìm thấy: clean 
  8. # khởi động lại 
  9. # xóa tập tin: ['Một''b''c'

Phần còn lại sau khi khớp có thể được chuyển thành một biến và bạn có thể sử dụng nó như thế này nếu cần.

Hãy nhìn khác:

 
  1. def match_capture_subpattern(lệnh): 
  2.     lệnh khớp.split(): 
  3.         trường hợp ["đi", ("phía bắc" | "phía nam" | "phía đông" | "phía tây"BẰNG phương hướng]: 
  4.             in(f"đi {hướng}"

Bạn thấy nó cũng có thể được sử dụng kết hợp với as. Tuyệt vời hay không?

Một cái nhìn cuối cùng:

 
  1. điểm trận đấu: 
  2.     trường hợp Điểm(x, y) nếu x == y: 
  3.         in(f"Điểm nằm trên đường chéo Y=X tại {x}."
  4.     trường hợp Điểm(x, y): 
  5.         in(f"Điểm không nằm trên đường chéo."

Bạn cũng có thể sử dụng nếu trong trường hợp.

Ngoài việc tăng thêm gánh nặng tinh thần cho các lập trình viên, những thủ thuật này còn mang lại lợi ích gì? Tôi có thể thực hiện nó bằng một lệnh if đơn giản và khả năng đọc vẫn cao. Hơn nữa, trận đấu này không cải thiện hiệu suất, thậm chí đôi khi còn chậm hơn, vậy thì sao phải bận tâm?

Tại sao Python không có trận đấu ngay từ đầu đã là năm 2021. Nếu thêm một trận đấu mới, bạn đã quên ý định ban đầu của mình rồi sao?

3. Lời nhắc kiểu mới khiến tôi cười chết

Python3.9 được viết như thế này:

 
  1. từ nhập nhập Liên minh
  2. Một: Liên minh[số nguyên, chuỗi] = 1 

Python3.10 có thể được viết như thế này:

 
  1. a: chuỗi | số nguyên = 1 

Thành thật mà nói, ngay cả khi bạn đổi nó thành |, tôi cũng khó có thể sử dụng nó. Gợi ý loại là một lợi thế của việc học ngôn ngữ tĩnh của người khác. Chúng nhắc nhở khả năng đọc và bảo trì của chương trình. Không chuyển sai loại biến khi sửa đổi mã.

Hơn nữa, trình thông dịch Python hoàn toàn không kiểm tra các gợi ý loại để tìm lỗi, nó chỉ nhằm mục đích giải trí:

 
  1. >>> chắc chắn vui(x :số nguyên) -> str: 
  2. ...     trở lại x 
  3. ... 
  4. >>> in(vui('như')) 
  5. asf 
  6. >>> 

Nếu một biến có thể có nhiều loại, thì đó là cái quái gì vậy? Nếu có quá nhiều lời nhắc, tốt hơn hết là bạn không nên nhắc gì cả. Đó là một ngôn ngữ động ngay từ đầu. Chỉ cần chơi với chính mình và hài hước, hahahaha.

Khi sử dụng gợi ý loại, tôi chỉ sử dụng tối đa một loại, nếu có nhiều loại thì tôi không nhắc. Hoặc tự sửa code, cần nhiều loại thế?

3. Chưa ổn định lắm

Python 3.9.0 được phát hành vào tháng 10 năm 2020. Bản 3.9.1 được phát hành 2 tháng sau đó và có một danh sách dài các bản sửa lỗi. Tương tự như vậy, Python 3.10.x cũng có thể có một số bản sửa lỗi để duy trì hoạt động trong một thời gian.

Python 3.10 có cú pháp mới: match-case, nhưng một số công cụ định dạng hoặc IDE có thể chưa hỗ trợ cú pháp này. Ngay cả khi được hỗ trợ, bạn cần phải nâng cấp chúng.

Tóm lại, Python3.10.0 mới được một tháng và chưa ổn định lắm.

Sau đó bạn có thể hỏi, khi nào nó được coi là ổn định?

Tôi nghĩ thấp hơn 1-2 phiên bản so với phiên bản mới nhất là lựa chọn tốt nhất. Ví dụ: nếu Python 3.10 được phát hành, bạn có thể xem xét nâng cấp lên Python 3.8 hoặc Python 3.9, vì các phiên bản này đủ ổn định tại thời điểm này.

Mặt khác, trừ khi phiên bản bạn đang sử dụng thông báo thời điểm không hỗ trợ cập nhật bảo mật hoặc báo cáo lỗi, bạn không bao giờ có thể cập nhật. Ví dụ: Python 3.6 sẽ kết thúc cập nhật bảo mật vào tháng 12 năm 2021 và bạn nên nâng cấp lên phiên bản Python 3.7 trở lên vào thời điểm này.

lời cuối cùng

Dựa trên ba điểm trên, tôi quyết định không cập nhật Python3.10. Tất nhiên, Python 3.10 cũng có các tính năng mới tốt hơn, chẳng hạn như nhắc nhở lỗi thân thiện hơn. Khi dấu ngoặc và dấu ngoặc kép của bạn không được đóng, các lỗi sẽ rõ ràng hơn.

Tôi thực sự thích hai câu trong Zen of Python: đơn giản tốt hơn phức tạp và rõ ràng tốt hơn tối nghĩa. Tôi hy vọng rằng các bản cập nhật của Python cũng có thể duy trì ý định ban đầu về Zen của Python.

Liên kết gốc: https://mp.weixin.qq.com/s/evCgLMJDv9KzLPFpwnvwhg.

Cuối cùng, bài viết này về các tính năng mới của Python 3.10 và quyết định không cập nhật nó của tôi kết thúc ở đây. Nếu bạn muốn biết thêm về các tính năng mới của Python 3.10 và quyết định không cập nhật nó của tôi, vui lòng Tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt. các bài viết liên quan tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

27 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress