Tôi có nên sử dụng python toán tử hải mã không?

Toán tử hải mã [. =] là một trong những tính năng đã được thêm vào Python 3. 8 [PEP 572]. Toán tử hải mã được gọi như vậy vì nó trông giống như mắt và ngà của hải mã.  

Nó còn được gọi là biểu thức gán hoặc biểu thức được đặt tên. Trên thực tế, tiêu đề PEP 572 sử dụng các biểu thức gán tên và việc triển khai CPython tham chiếu nó dưới dạng các biểu thức được đặt tên.  

Trong bài viết này, chúng ta sẽ tìm hiểu cú pháp và cách hoạt động của toán tử hải mã trong Python với các ví dụ

Tranh cãi về toán tử Walrus

Việc đưa toán tử hải mã vào Python 3. 8 là một trong những lý do tại sao Guido van Rossum từ chức BDFL [Nhà độc tài nhân từ vì cuộc sống]. Xem câu trả lời của Guido bên dưới về lý do tại sao anh ấy từ chức BDFL

"Cây rơm làm gãy lưng con lạc đà là một đề xuất cải tiến Python rất gây tranh cãi, sau khi tôi chấp nhận nó, mọi người đã lên các phương tiện truyền thông xã hội như Twitter và nói những điều thực sự làm tổn thương cá nhân tôi. Và một số người đã nói những điều gây tổn thương thực sự là các nhà phát triển cốt lõi của Python, vì vậy tôi cảm thấy rằng mình không còn được đội ngũ phát triển cốt lõi của Python tin tưởng nữa. "

Hướng dẫn của Rossum

Một trong những lý do tại sao cộng đồng Python và các nhà phát triển chỉ trích tính năng này rất nhiều là vì nó không đáp ứng một số nguyên tắc hướng dẫn của Python như đã đề cập trong Zen of Python. Ngoài ra, những người ngẫu nhiên trên internet và các nhà phát triển cốt lõi của Python đã coi thường quyết định chấp nhận PEP 572 của Guido, điều này cuối cùng dẫn đến việc anh từ chức BDFL

Đối với những người tò mò, đây là một bài đọc thú vị của Jeremy Grifski về lý do tại sao toán tử hải mã lại gây tranh cãi như vậy. Tôi cũng mời bạn nghe video này, nơi Dustin Ingram nói mọi thứ về người điều hành hải mã tại sự kiện Pycon 2019

Dù tranh cãi là gì, vì giờ đây nó chính thức là một phần của Python, chúng tôi sẽ hiểu cách chúng tôi có thể sử dụng toán tử này tốt hơn.  

toán tử hải mã

Cú pháp cho toán tử hải mã được hiển thị bên dưới. Như bạn có thể thấy toán tử hải mã giúp bạn gán giá trị cho các biến trong một biểu thức. Lưu ý rằng nó trả về giá trị của NAME

Có cú pháp mới

def f[a, b, /, c, d, *, e, f]:
    print[a, b, c, d, e, f]
6 gán giá trị cho các biến như một phần của biểu thức lớn hơn. Nó được gọi một cách trìu mến là "người điều hành hải mã" do giống với mắt và ngà của một con hải mã

Trong ví dụ này, biểu thức gán giúp tránh gọi

def f[a, b, /, c, d, *, e, f]:
    print[a, b, c, d, e, f]
7 hai lần

if [n := len[a]] > 10:
    print[f"List is too long [{n} elements, expected 

Chủ Đề