Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
8 mẹo tái cấu trúc Python giúp mã sạch hơn và Pythonic
Trong lập trình, việc giữ cho mã nguồn rõ ràng, gọn gàng và dễ hiểu không chỉ giúp tiết kiệm thời gian bảo trì mà còn nâng cao chất lượng dự án. Python, với triết lý "Simple is better than complex," luôn khuyến khích các nhà phát triển áp dụng các phương pháp viết mã hiệu quả và Pythonic. Trong bài viết này, mình sẽ mình 8 mẹo tái cấu trúc mã Python đơn giản nhưng cực kỳ hữu ích, giúp bạn tối ưu hóa mã nguồn, cải thiện hiệu suất và tăng tính đọc hiểu một cách dễ dàng.

1. Gộp các câu lệnh if lồng nhau trong Python
Thay vì sử dụng nhiều câu lệnh if lồng nhau, bạn có thể gộp chúng lại thành một câu lệnh duy nhất để giảm độ phức tạp của mã.
Trước khi cải tiến:
if a:
if b:
pass
Sau khi cải tiến:
Bài viết này được đăng tại [free tuts .net]
if a and b:
pass
2. Sử dụng any thay cho vòng lặp trong Python
Khi cần kiểm tra có ít nhất một phần tử thỏa mãn điều kiện, thay vì dùng vòng lặp, bạn có thể sử dụng hàm any để làm điều này ngắn gọn hơn.
Trước khi cải tiến:
numbers = [-1, -2, -4, 0, 3, -7]
has_positives = False
for n in numbers:
if n > 0:
has_positives = True
break
Sau khi cải tiến:
has_positives = any(n > 0 for n in numbers)
3. Đưa các khai báo cố định ra khỏi vòng lặp trong Python
Nếu một biến không thay đổi trong suốt vòng lặp, bạn nên khai báo nó bên ngoài vòng lặp để tránh lặp lại thao tác không cần thiết.
Trước khi cải tiến:
for building in buildings:
city = 'London'
addresses.append(building.street_address, city)
Sau khi cải tiến:
city = 'London'
for building in buildings:
addresses.append(building.street_address, city)
4. Loại bỏ biến trung gian không cần thiết trong Python
Nếu biến được tạo ra chỉ để trả về ngay sau đó, bạn có thể trả về trực tiếp giá trị mà không cần khai báo biến trung gian.
Trước khi cải tiến:
def state_attributes(self):
"""Trả về thuộc tính trạng thái."""
state_attr = {
ATTR_CODE_FORMAT: self.code_format,
ATTR_CHANGED_BY: self.changed_by,
}
return state_attr
Sau khi cải tiến:
def state_attributes(self):
"""Trả về thuộc tính trạng thái."""
return {
ATTR_CODE_FORMAT: self.code_format,
ATTR_CHANGED_BY: self.changed_by,
}
5. Sử dụng biểu thức if ngắn gọn trong Python
Thay vì dùng câu lệnh if-else dài dòng để gán giá trị cho biến, bạn có thể viết gọn trên một dòng bằng cách sử dụng biểu thức if.
Trước khi cải tiến:
if condition:
x = 1
else:
x = 2
Sau khi cải tiến:
x = 1 if condition else 2
6. Thêm "Guard Clause" để giảm độ lồng ghép trong Python
Thay vì đặt tất cả logic trong một câu lệnh if, bạn có thể thêm guard clause để kiểm tra điều kiện và thoát ra sớm, giúp giảm mức độ lồng ghép và làm mã rõ ràng hơn.
Trước khi cải tiến:
def should_i_wear_this_hat(self, hat):
if isinstance(hat, Hat):
current_fashion = get_fashion()
weather_outside = self.look_out_of_window()
is_stylish = self.evaluate_style(hat, current_fashion)
if weather_outside.is_raining:
print("Damn.")
return True
else:
print("Great.")
return is_stylish
else:
return False
Sau khi cải tiến:
def should_i_wear_this_hat(self, hat):
if not isinstance(hat, Hat):
return False
current_fashion = get_fashion()
weather_outside = self.look_out_of_window()
is_stylish = self.evaluate_style(hat, current_fashion)
if weather_outside.is_raining:
print("Damn.")
return True
print("Great.")
return is_stylish
7. Di chuyển khai báo biến gần nơi sử dụng trong Python
Để mã dễ đọc hơn, bạn nên khai báo biến gần nơi sử dụng nhất.
Trước khi cải tiến:
def should_i_wear_this_hat(self, hat):
if not isinstance(hat, Hat):
return False
current_fashion = get_fashion()
weather_outside = self.look_out_of_window()
if weather_outside.is_raining:
print("Damn.")
return True
print("Great.")
is_stylish = self.evaluate_style(hat, current_fashion)
return is_stylish
Sau khi cải tiến:
def should_i_wear_this_hat(self, hat):
if not isinstance(hat, Hat):
return False
weather_outside = self.look_out_of_window()
if weather_outside.is_raining:
print("Damn.")
return True
print("Great.")
return self.evaluate_style(hat, get_fashion())
8. Kiểm tra danh sách rỗng một cách đơn giản trong Python
Thay vì kiểm tra độ dài của danh sách bằng len(your_list) > 0, bạn có thể chỉ cần viết if your_list vì trong Python, các danh sách rỗng được coi là False.
Trước khi cải tiến:
if len(list_of_hats) > 0:
hat_to_wear = choose_hat(list_of_hats)
Sau khi cải tiến:
if list_of_hats:
hat_to_wear = choose_hat(list_of_hats)
Kết bài
Tóm lại, việc áp dụng 8 mẹo tái cấu trúc mã Python này không chỉ giúp mã nguồn của bạn trở nên gọn gàng, dễ đọc mà còn tăng tính Pythonic trong cách viết. Tái cấu trúc mã là một bước quan trọng để cải thiện hiệu suất và sự rõ ràng của chương trình, giúp bạn và đồng nghiệp dễ dàng bảo trì và mở rộng trong tương lai. Hãy thử áp dụng các mẹo này vào dự án của bạn và cảm nhận sự khác biệt!

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng