Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách tạo hằng số trong Python
Trong lập trình, hằng số là các giá trị không đổi, giúp mã nguồn trở nên dễ đọc, bảo trì hơn và tránh sai sót khi cần dùng lại các giá trị không thay đổi. Tuy nhiên, khác với các ngôn ngữ như C++ hay Java có từ khóa riêng để khai báo hằng số, Python không cung cấp công cụ như vậy. Điều này đặt ra câu hỏi: làm thế nào để khai báo hằng số trong Python một cách hiệu quả và tuân thủ nguyên tắc lập trình? Bài viết này sẽ giới thiệu các cách phổ biến, dễ áp dụng để tạo hằng số trong Python, giúp bạn viết mã rõ ràng và dễ quản lý hơn.
Hằng số trong Python
Trong các ngôn ngữ như C++ hay Java, có từ khóa để khai báo hằng số. Ví dụ:
// C++ const int maxValue = 99;
// Java public static final int MAX_VALUE = 99;
Nhưng trong Python, không có từ khóa đặc biệt nào để định nghĩa hằng số. Vậy làm cách nào để tạo hằng số trong Python?
Cách nào để tạo hằng số trong Python?
Trong Python, để biểu thị một biến là hằng số, chúng ta thường sử dụng tên biến viết hoa toàn bộ, theo chuẩn cộng đồng. Ví dụ:
Bài viết này được đăng tại [free tuts .net]
MAX_VALUE = 99
Cách này không ngăn cản bạn thay đổi giá trị, nhưng nhắc nhở các lập trình viên khác rằng biến này nên được giữ nguyên.
Sử dụng Final
trong typing
Từ Python 3.8 trở đi, chúng ta có thể sử dụng Final
trong module typing
để nhấn mạnh rằng biến này không nên thay đổi. Khi đó, các công cụ kiểm tra kiểu dữ liệu như mypy
có thể báo lỗi nếu phát hiện bạn thay đổi biến đã được khai báo là Final
. Ví dụ:
from typing import Final MAX_VALUE: Final[int] = 99 MAX_VALUE = 100 # Nếu kiểm tra bằng mypy sẽ báo lỗi.
Sử dụng namedtuple
cho giá trị cố định
Nếu bạn cần biến không thay đổi thực sự, namedtuple
là lựa chọn tốt. namedtuple
là loại đối tượng nhẹ, dễ tạo và không thể thay đổi sau khi được khởi tạo. Ví dụ:
from collections import namedtuple Constants = namedtuple('Constants', ['pi', 'max_value']) constants = Constants(3.14, 99) print(constants.pi) # 3.14 print(constants.max_value) # 99 constants.max_value = 100 # Gây lỗi: AttributeError: can't set attribute
Sử dụng namedtuple
hoặc Final
có thể giúp mã dễ hiểu và hạn chế lỗi không mong muốn khi vô tình thay đổi hằng số trong Python.
Kết bài
Mặc dù Python không có cú pháp chuyên biệt để tạo hằng số như một số ngôn ngữ khác, nhưng với các cách tiếp cận như sử dụng chữ in hoa, typing.Final
, và namedtuple
, chúng ta vẫn có thể khai báo các giá trị cố định và giảm thiểu rủi ro thay đổi không mong muốn trong mã nguồn. Qua những phương pháp này, Python không chỉ duy trì được sự linh hoạt mà còn giúp đảm bảo tính ổn định, rõ ràng trong quá trình phát triển và bảo trì ứng dụng. Hy vọng rằng những gợi ý trên sẽ giúp bạn sử dụng hằng số một cách hiệu quả và viết mã Python tối ưu hơn.