Pythonic là gì?

Pythonic là gì Pythonic là một Idioms mô tả cách tiếp cận lập trình phù hợp với triết lý sáng lập của ngôn ngữ lập trình Python . Có nhiều cách để viết code tương tự nhau trong Python, nhưng có một cách được ưu thích hơn để thực hiện nó. Cách ưa thích này

Pythonic là gì

Pythonic là một Idioms mô tả cách tiếp cận lập trình phù hợp với triết lý sáng lập của ngôn ngữ lập trình Python . Có nhiều cách để viết code tương tự nhau trong Python, nhưng có một cách được ưu thích hơn để thực hiện nó. Cách ưa thích này được gọi là “pythonic.”
Ngược lại, code khó hiểu hoặc đọc giống như một bản phiên âm thô từ một ngôn ngữ lập trình khác được gọi là “unpythonic”.

Triết lý viết code trong Python

  • Đẹp đẽ tốt hơn xấu xí
  • Minh bạch tốt hơn che đậy
  • Đơn giản tốt hơn phức tạp
  • Phức tạp tốt hơn rắc rối
  • Dễ đọc
    Chúng ta hãy cùng tham khảo một vài ví dụ dưới đây.
i = 0
while i < mylist_length:
   do_something(mylist[i])
   i += 1

Mặc dù đoạn code trên hoạt động tốt, nhưng nó không được coi là Pythonic. Nó không phải là một idiom mà ngôn ngữ Python khuyến khích. Chúng ta có thể cải thiện nó. Một idiom điển hình trong Python để tạo tất cả các số trong list sẽ là sử dụng hàm range () được tích hợp sẵn:

for i in range(mylist_length):
   do_something(mylist[i])

Tuy nhiên, đây vẫn không phải là Pythonic. Đây là cách Pythonic, được chính ngôn ngữ khuyến khích:

for element in mylist:
   do_something(element)

7 Ví dụ về code pythonic

1. Hoán đổi giá trị giữa 2 biến

Bad

tmp = a
a = b
b = tmp

Pythonic

a,b = b,a

2. Sử dụng list

Bad

my_list = []
for i in range(10):
    my_list.append(i*2)

Pythonic

my_list = [i*2 for i in range(10)]

3. Duyệt mảng có đánh thứ tự

Bad

for i in range(len(my_list)):
    print(i, "-->", my_list[i])

Pythonic

for i,item in enumerate(my_list):
    print(i, "-->",item)

4. Unpacking

Pythonic

a, *rest = [1, 2, 3]
# a = 1, rest = [2, 3]

a, *middle, c = [1, 2, 3, 4]
# a = 1, middle = [2, 3], c = 4

5. Nối các phần tử trong mảng

Bad

letters = ['s', 'p', 'a', 'm']
s=""
for let in letters:
    s += let

Pythonic

letters = ['s', 'p', 'a', 'm']
word = ''.join(letters)

6. Kiểm tra điều kiện

Bad

if attr == True:
    print 'True!'

if attr == None:
    print 'attr is None!'

Pythonic

if attr:
    print 'attr is truthy!'

if not attr:
    print 'attr is falsey!'

if attr is None:
    print 'attr is None!'

7. Hoạt động của mảng

Bad

a = [3, 4, 5]
b = []
for i in a:
    if i > 4:
        b.append(i)

Pythonic

a = [3, 4, 5]
b = [i for i in a if i > 4]
# Or:
b = filter(lambda x: x > 4, a)

Bad

a = [3, 4, 5]
for i in range(len(a)):
    a[i] += 3

Pythonic

a = [3, 4, 5]
a = [i + 3 for i in a]
# Or:
a = map(lambda i: i + 3, a)

Nguồn: viblo.asia

Bài viết liên quan

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 2

viết lại nội dung này ” Phát hiện các cuộc tấn công Cross Site Scripting (XSS)

AI Chatbot 2025: Xu Hướng Tất Yếu Cho Doanh Nghiệp Dẫn Đầu

Giới thiệu AI chatbots đã trải qua một hành trình đáng kể, từ những công cụ t

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 1

Tấn công web là gì? Ứng dụng web là các ứng dụng cung cấp dịch vụ cho người

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp Trong kỷ nguyên s