Như chúng ta có thể thấy từ ví dụ trên, chúng ta sử dụng toán tử gán
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
9 để gán giá trị cho một biến# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
đầu ra
apple.com
Trong ví dụ trên, chúng tôi đã gán giá trị
apple.com0 cho biến site_name. Sau đó, chúng tôi đã in ra giá trị được gán cho site_name
Ghi chú. Python là ngôn ngữ suy luận kiểu, vì vậy bạn không cần phải xác định rõ ràng kiểu biến. Nó tự động biết rằng
apple.com0 là một chuỗi và khai báo biến
apple.com2 là một chuỗi
Thay đổi giá trị của một biến trong Python
site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
đầu ra
programiz.pro apple.com
Ở đây, giá trị của site_name được thay đổi từ
apple.com3 thành
apple.com4
Ví dụ. Gán nhiều giá trị cho nhiều biến
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
0Nếu chúng ta muốn gán cùng một giá trị cho nhiều biến cùng một lúc, chúng ta có thể làm điều này như
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
1Ở đây, chúng tôi đã gán cùng một giá trị chuỗi
apple.com5 cho cả hai biến site1 và site2
Quy tắc đặt tên biến Python
- Tên hằng và tên biến phải có sự kết hợp của các chữ cái viết thường [a đến z] hoặc viết hoa [A đến Z] hoặc chữ số [0 đến 9] hoặc dấu gạch dưới
apple.com
6. Ví dụ
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
4- Tạo một cái tên có ý nghĩa. Ví dụ, nguyên âm có ý nghĩa hơn v
- Nếu bạn muốn tạo một tên biến có hai từ, hãy sử dụng dấu gạch dưới để phân tách chúng. Ví dụ
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
5- Python phân biệt chữ hoa chữ thường. Vì vậy, num và Num là các biến khác nhau. Ví dụ,
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
6- Tránh sử dụng các từ khóa như if, True, class, v.v. như tên biến
Hằng Python
Hằng là một loại biến đặc biệt mà giá trị của nó không thể thay đổi được
Trong Python, các hằng thường được khai báo và gán trong một mô-đun [một tệp mới chứa các biến, hàm, v.v. được nhập vào tệp chính]
Hãy xem cách chúng ta khai báo các hằng số trong tệp riêng biệt và sử dụng nó trong tệp chính,
Tạo một hằng số. py
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
0Tạo một chính. py
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
1Trong ví dụ trên, chúng tôi đã tạo một danh sách các loại trái cây, một bộ số, một từ điển bảng chữ cái có các giá trị với các khóa được chỉ định cho từng giá trị và một tập hợp các nguyên âm
Trong lập trình, thuật ngữ hằng dùng để chỉ các tên đại diện cho các giá trị không thay đổi trong quá trình thực thi chương trình. Hằng số là một khái niệm cơ bản trong lập trình và các nhà phát triển Python sử dụng chúng trong nhiều trường hợp. Tuy nhiên, Python không có cú pháp chuyên dụng để xác định hằng số. Trong thực tế, các hằng Python chỉ là các biến không bao giờ thay đổi
Để ngăn các lập trình viên gán lại một tên được cho là giữ một hằng số, cộng đồng Python đã thông qua một quy ước đặt tên. sử dụng chữ hoa. Đối với mọi Pythonista, điều cần thiết là phải biết hằng số là gì, cũng như tại sao và khi nào nên sử dụng chúng
Trong hướng dẫn này, bạn sẽ học cách
- Xác định đúng các hằng số trong Python
- Xác định một số hằng số tích hợp
- Sử dụng các hằng số để cải thiện khả năng đọc, khả năng sử dụng lại và khả năng bảo trì của mã của bạn
- Áp dụng các cách tiếp cận khác nhau để tổ chức và quản lý các hằng số trong một dự án
- Sử dụng một số kỹ thuật để làm cho các hằng không đổi một cách nghiêm ngặt trong Python
Bằng cách học cách xác định và sử dụng các hằng số, bạn sẽ cải thiện đáng kể khả năng đọc, khả năng bảo trì và khả năng sử dụng lại của mã của mình
Để học được nhiều nhất từ hướng dẫn này, bạn sẽ cần có kiến thức cơ bản về các biến, hàm, mô-đun, gói và không gian tên Python. Bạn cũng sẽ cần biết những kiến thức cơ bản về lập trình hướng đối tượng trong Python
Mã mẫu. Nhấp vào đây để tải xuống mã mẫu hướng dẫn bạn cách sử dụng hằng số trong Python
Hiểu về hằng và biến
Biến và hằng là hai khái niệm lịch sử và cơ bản trong lập trình máy tính. Hầu hết các ngôn ngữ lập trình sử dụng các khái niệm này để thao tác dữ liệu và hoạt động một cách hiệu quả và hợp lý
Các biến và hằng số có thể sẽ xuất hiện trong từng dự án, ứng dụng, thư viện hoặc đoạn mã khác mà bạn từng viết. Câu hỏi là. biến và hằng trong thực tế là gì?
Loại bỏ các quảng cáobiến là gì
Trong toán học, một biến được định nghĩa là một ký hiệu đề cập đến một giá trị hoặc số lượng có thể thay đổi theo thời gian. Trong lập trình, một biến cũng là một ký hiệu hoặc tên thường được liên kết với một địa chỉ bộ nhớ chứa một giá trị, đối tượng hoặc một phần dữ liệu. Giống như trong toán học, nội dung của một biến lập trình có thể thay đổi trong quá trình thực thi mã định nghĩa nó
Các biến thường có một tên mô tả bằng cách nào đó được liên kết với một giá trị hoặc đối tượng đích. Giá trị mục tiêu này có thể thuộc bất kỳ loại dữ liệu nào. Vì vậy, bạn có thể sử dụng biến để biểu diễn số, chuỗi, trình tự, đối tượng tùy chỉnh, v.v.
Bạn có thể thực hiện hai thao tác chính trên một biến
- Truy cập giá trị của nó
- Gán cho nó một giá trị mới
Trong hầu hết các ngôn ngữ lập trình, bạn có thể truy cập giá trị được liên kết với một biến bằng cách trích dẫn tên biến đó trong mã của bạn. Để gán một giá trị mới cho một biến đã cho, bạn sẽ sử dụng một câu lệnh, thường bao gồm tên biến, toán tử gán và giá trị mong muốn
Trong thực tế, bạn sẽ tìm thấy nhiều ví dụ về độ lớn, dữ liệu và đối tượng mà bạn có thể biểu diễn dưới dạng biến. Một vài ví dụ bao gồm nhiệt độ, tốc độ, thời gian và độ dài. Các ví dụ khác về dữ liệu mà bạn có thể coi là biến số bao gồm số lượng người dùng đã đăng ký trong một ứng dụng web, số lượng nhân vật đang hoạt động trong một trò chơi điện tử và số dặm mà một người chạy đã đi được
hằng số là gì
Toán học cũng có khái niệm về hằng số. Thuật ngữ dùng để chỉ một giá trị hoặc số lượng không bao giờ thay đổi. Trong lập trình, hằng đề cập đến các tên được liên kết với các giá trị không bao giờ thay đổi trong quá trình thực thi chương trình
Cũng giống như các biến, hằng số lập trình bao gồm hai thứ. một tên và một giá trị liên quan. Tên sẽ mô tả rõ ràng hằng số là gì. Giá trị là biểu thức cụ thể của hằng số
Giống như với các biến, giá trị được liên kết với một hằng số nhất định có thể thuộc bất kỳ kiểu dữ liệu nào. Vì vậy, bạn có thể định nghĩa hằng số nguyên, hằng số dấu phẩy động, hằng ký tự, hằng chuỗi, v.v.
Sau khi bạn đã xác định một hằng số, nó sẽ chỉ cho phép bạn thực hiện một thao tác duy nhất trên nó. Bạn chỉ có thể truy cập giá trị của hằng chứ không thể thay đổi nó theo thời gian. Điều này khác với một biến, cho phép bạn truy cập giá trị của nó, nhưng cũng có thể gán lại nó
Bạn sẽ sử dụng các hằng số để biểu thị các giá trị không thay đổi. Bạn sẽ tìm thấy rất nhiều giá trị này trong chương trình hàng ngày của mình. Một vài ví dụ bao gồm tốc độ ánh sáng, số phút trong một giờ và tên thư mục gốc của dự án
Tại sao sử dụng hằng số
Trong hầu hết các ngôn ngữ lập trình, các hằng số bảo vệ bạn khỏi việc vô tình thay đổi giá trị của chúng ở đâu đó trong mã khi bạn viết mã lúc hai giờ sáng, gây ra các lỗi không mong muốn và khó sửa lỗi. Các hằng số cũng giúp bạn làm cho mã của mình dễ đọc và dễ bảo trì hơn
Một số ưu điểm của việc sử dụng hằng số thay vì sử dụng giá trị của chúng trực tiếp trong mã của bạn bao gồm
Ưu điểmMô tảKhả năng đọc được cải thiệnTên mô tả đại diện cho một giá trị nhất định trong suốt chương trình luôn dễ đọc và rõ ràng hơn chính giá trị cơ bản. Ví dụ: việc đọc và hiểu một hằng số có tên
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
92 dễ dàng hơn chính giá trị tốc độ cụ thể. Truyền đạt ý định rõ ràngHầu hết mọi người sẽ cho rằng # assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
93 có thể đề cập đến hằng số Pi. Tuy nhiên, việc sử dụng tên # assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
94, # assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
95 hoặc # assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
96 sẽ truyền đạt ý định của bạn rõ ràng hơn là sử dụng giá trị trực tiếp. Thực hành này sẽ cho phép các nhà phát triển khác hiểu mã của bạn một cách nhanh chóng và chính xác. Khả năng bảo trì tốt hơn Các hằng số cho phép bạn sử dụng cùng một tên để xác định cùng một giá trị trong toàn bộ mã của mình. Nếu bạn cần cập nhật giá trị của hằng số, thì bạn không phải thay đổi mọi phiên bản của giá trị. Bạn chỉ cần thay đổi giá trị ở một nơi duy nhất. định nghĩa hằng số. Điều này cải thiện khả năng bảo trì mã của bạn. Rủi ro lỗi thấp hơn Một hằng số đại diện cho một giá trị nhất định trong toàn bộ chương trình sẽ ít bị lỗi hơn so với một số trường hợp rõ ràng của giá trị. Giả sử rằng bạn sử dụng các mức độ chính xác khác nhau cho Pi tùy thuộc vào tính toán mục tiêu của bạn. Bạn rõ ràng đã sử dụng các giá trị với độ chính xác cần thiết cho mọi phép tính. Nếu bạn cần thay đổi độ chính xác trong một tập hợp phép tính, thì việc thay thế các giá trị có thể dễ xảy ra lỗi vì cuối cùng bạn có thể thay đổi sai giá trị. Sẽ an toàn hơn khi tạo các hằng số khác nhau cho các mức độ chính xác khác nhau và thay đổi mã ở một nơi duy nhất. Giảm nhu cầu sửa lỗiHằng số sẽ không thay đổi trong suốt vòng đời của chương trình. Bởi vì chúng sẽ luôn có cùng giá trị, nên chúng không gây ra lỗi và lỗi. Tính năng này có thể không cần thiết trong các dự án nhỏ, nhưng nó có thể rất quan trọng trong các dự án lớn có nhiều nhà phát triển. Các nhà phát triển sẽ không phải đầu tư thời gian để gỡ lỗi giá trị hiện tại của bất kỳ hằng số nào. Lưu trữ dữ liệu an toàn theo luồngCác hằng số chỉ có thể được truy cập, không được ghi. Tính năng này làm cho chúng trở thành các đối tượng an toàn cho luồng, có nghĩa là một số luồng có thể đồng thời sử dụng một hằng số mà không có nguy cơ làm hỏng hoặc mất dữ liệu cơ bảnNhư bạn đã học trong bảng này, hằng số là một khái niệm quan trọng trong lập trình vì lý do chính đáng. Chúng có thể làm cho cuộc sống của bạn dễ chịu hơn và mã của bạn đáng tin cậy hơn, dễ bảo trì và dễ đọc hơn. Bây giờ, khi nào bạn nên sử dụng hằng số?
Khi sử dụng hằng số
Cuộc sống, và đặc biệt là khoa học, có rất nhiều ví dụ về những giá trị bất biến hoặc những giá trị không bao giờ thay đổi. Một vài ví dụ bao gồm
- 3. 141592653589793. Một hằng số được ký hiệu là π, đánh vần là Pi trong tiếng Anh, đại diện cho tỷ lệ giữa chu vi của một vòng tròn với đường kính của nó
- 2. 718281828459045. Một hằng số được ký hiệu là e và được gọi là số Euler, có liên quan chặt chẽ với logarit tự nhiên và lãi kép
- 3.600. Số giây trong một giờ, được coi là không đổi trong hầu hết các ứng dụng, mặc dù giây nhuận đôi khi được thêm vào để giải thích cho sự thay đổi trong tốc độ quay của Trái đất
- -273. 15. Một hằng số đại diện cho độ không tuyệt đối tính bằng độ C, bằng 0 kelvin trên thang nhiệt độ Kelvin
Tất cả các ví dụ trên đều là các giá trị hằng mà con người thường dùng trong đời sống và khoa học. Trong lập trình, bạn sẽ thường thấy mình xử lý những giá trị này và nhiều giá trị tương tự khác mà bạn có thể xem xét và coi là hằng số
Tóm lại, sử dụng hằng số để biểu thị số lượng, độ lớn, đối tượng, tham số hoặc bất kỳ phần dữ liệu nào khác được cho là không thay đổi trong suốt thời gian tồn tại của nó
Loại bỏ các quảng cáoXác định các hằng số của riêng bạn trong Python
Cho đến thời điểm này, bạn đã học về hằng số như một khái niệm chung trong cuộc sống, khoa học và lập trình. Bây giờ là lúc tìm hiểu cách Python xử lý các hằng số. Trước tiên, bạn nên biết rằng Python không có cú pháp chuyên dụng để xác định hằng số
Nói cách khác, Python không có hằng số theo nghĩa chặt chẽ của từ này. Nó chỉ có các biến, chủ yếu là do bản chất năng động của nó. Do đó, để có một hằng số trong Python, bạn cần xác định một biến không bao giờ thay đổi và tuân theo hành vi đó bằng cách tránh các thao tác gán trên chính biến đó
Ghi chú. Trong phần này, bạn sẽ tập trung vào việc xác định các hằng số của riêng mình. Tuy nhiên, có một vài hằng số được tích hợp sẵn trong Python. Bạn sẽ tìm hiểu về chúng
Sau đó, làm thế nào các nhà phát triển Python biết rằng một biến đã cho đại diện cho một hằng số? . Tiếp tục đọc sách để học hỏi nhiều hơn
Hằng số do người dùng định nghĩa
Để nói với các lập trình viên khác rằng một giá trị nhất định phải được coi là một hằng số, bạn phải sử dụng quy ước đặt tên được chấp nhận rộng rãi cho mã định danh hoặc tên của hằng số đó. Bạn nên viết tên bằng chữ in hoa với dấu gạch dưới để phân tách các từ, như đã nêu trong phần PEP 8
Dưới đây là một số ví dụ về hằng số Python do người dùng định nghĩa
apple.com4
Lưu ý rằng bạn đã tạo các hằng số này chính xác như cách bạn tạo các biến. Bạn đã sử dụng tên mô tả, toán tử gán [
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
97] và giá trị cụ thể của hằng sốBằng cách chỉ sử dụng chữ in hoa, bạn đang thông báo rằng tên hiện tại được coi là một hằng số—hay chính xác hơn là một biến không bao giờ thay đổi. Vì vậy, các nhà phát triển Python khác sẽ biết điều đó và hy vọng sẽ không thực hiện bất kỳ thao tác gán nào trên biến hiện tại
Ghi chú. Một lần nữa, Python không hỗ trợ hằng số hoặc tên không thể gán lại. Việc sử dụng các chữ cái viết hoa chỉ là một quy ước và nó không ngăn cản các nhà phát triển gán các giá trị mới cho hằng số của bạn. Vì vậy, bất kỳ lập trình viên nào làm việc với mã của bạn cần phải cẩn thận và không bao giờ viết mã thay đổi giá trị của hằng số. Hãy nhớ quy tắc này vì bạn cũng cần tuân theo nó
Bởi vì các hằng số Python chỉ là các biến, cả hai đều tuân theo các quy tắc đặt tên tương tự, với điểm khác biệt duy nhất là các hằng số chỉ sử dụng các chữ cái viết hoa. Theo ý tưởng này, tên của hằng số có thể
- Có độ dài bất kỳ
- Bao gồm các chữ cái viết hoa [______ 198–________ 199]
- Bao gồm các chữ số [
apple.com
80–apple.com
81] nhưng không phải là ký tự đầu tiên của chúng - Sử dụng các ký tự gạch dưới [
apple.com
82] để phân tách các từ hoặc làm ký tự đầu tiên của chúng
Sử dụng chữ in hoa làm cho hằng số của bạn nổi bật so với các biến của bạn. Bằng cách này, các nhà phát triển khác sẽ nhận ra rõ ràng mục đích của họ
Theo khuyến nghị đặt tên chung, hãy tránh các tên viết tắt khi xác định hằng số. Mục đích của tên hằng là làm rõ ý nghĩa giá trị của hằng để sau này bạn có thể sử dụng lại. Mục tiêu này yêu cầu tên mô tả. Tránh sử dụng tên có một chữ cái, chữ viết tắt không phổ biến và tên chung chung như
apple.com83 hoặc
apple.com84
Thực tiễn được đề xuất là xác định các hằng số ở đầu bất kỳ tệp
apple.com85 nào ngay sau bất kỳ câu lệnh
apple.com86 nào. Bằng cách này, những người đọc mã của bạn sẽ biết ngay mục đích của hằng số và cách xử lý dự kiến
Hằng số Dunder cấp mô-đun
là những tên đặc biệt bắt đầu và kết thúc bằng dấu gạch dưới kép. Một số ví dụ bao gồm các tên như
apple.com87,
apple.com88 và
apple.com89. Những tên này thường được coi là hằng số trong các dự án Python
Ghi chú. Trong Python, tên dunder là tên có ý nghĩa đặc biệt. Nó bắt đầu và kết thúc bằng dấu gạch dưới kép, và từ dunder là từ ghép của dấu gạch dưới kép
Theo hướng dẫn về phong cách mã hóa của Python, PEP 8, các tên dunder cấp mô-đun sẽ xuất hiện sau chuỗi tài liệu của mô-đun và trước bất kỳ câu lệnh
apple.com86 nào ngoại trừ nhập khẩu
apple.com91
Đây là một mô-đun mẫu bao gồm một loạt các tên ngớ ngẩn
apple.com0
Trong ví dụ này,
apple.com87 xác định trước danh sách các tên mà Python sẽ nhập khi bạn sử dụng cấu trúc nhập
apple.com93 trong mã của mình. Trong trường hợp này, ai đó nhập
apple.com94 bằng nhập ký tự đại diện sẽ chỉ lấy lại hàm
apple.com95. Họ sẽ không có quyền truy cập vào
apple.com88,
apple.com89 và các tên khác không được liệt kê trên
apple.com87
Ghi chú. Cấu trúc
apple.com93 cho phép bạn nhập tất cả các tên được xác định trong một mô-đun nhất định trong một lần. Thuộc tính
apple.com87 hạn chế các tên đã nhập vào chỉ những tên trong danh sách cơ bản
Cộng đồng Python rất ủng hộ cấu trúc
apple.com86 này, thường được gọi là nhập ký tự đại diện, vì nó có xu hướng làm lộn xộn không gian tên hiện tại của bạn với những tên mà bạn có thể sẽ không sử dụng trong mã của mình
Ngược lại,
apple.com88 và
apple.com89 chỉ có ý nghĩa đối với tác giả và người dùng của mã hơn là đối với bản thân logic của mã. Những tên này phải được coi là hằng số vì không mã nào được phép thay đổi tác giả hoặc phiên bản trong quá trình thực thi chương trình
Lưu ý rằng hàm
apple.com95 có truy cập các tên lộn xộn nhưng không thay đổi chúng. Đây là cách hoạt động của
apple.com95 trong thực tế
>>>
apple.com5
Nói chung, không có quy tắc cứng nhắc nào ngăn cản bạn xác định các tên dunder cấp mô-đun của riêng bạn. Tuy nhiên, tài liệu Python phản đối mạnh mẽ việc sử dụng các tên lộn xộn khác với những tên thường được cộng đồng chấp nhận và sử dụng. Các nhà phát triển cốt lõi có thể giới thiệu các tên mới cho ngôn ngữ này trong tương lai mà không có bất kỳ cảnh báo nào
Loại bỏ các quảng cáoĐưa các hằng số vào hoạt động
Cho đến giờ, bạn đã học về hằng số cũng như vai trò và tầm quan trọng của chúng trong lập trình. Bạn cũng đã biết rằng Python không hỗ trợ các hằng số nghiêm ngặt. Đó là lý do tại sao bạn có thể coi các hằng số là các biến không bao giờ thay đổi
Trong các phần sau, bạn sẽ viết mã các ví dụ về mức độ có giá trị của các hằng số trong cuộc phiêu lưu viết mã hàng ngày của bạn
Thay thế Magic Numbers để dễ đọc
Trong lập trình, thuật ngữ số ma thuật đề cập đến bất kỳ số nào xuất hiện trực tiếp trong mã của bạn mà không có bất kỳ lời giải thích nào. Đó là một giá trị bất ngờ, làm cho mã của bạn trở nên bí ẩn và khó hiểu. Số ma thuật cũng làm cho các chương trình khó đọc hơn và khó bảo trì và cập nhật hơn
Ví dụ: giả sử bạn có chức năng sau
apple.com6
Bạn có thể cho biết trước ý nghĩa của từng con số trong phép tính này là gì không? . Các con số khác nhau trong hàm này là những con số kỳ diệu vì bạn không thể suy ra ý nghĩa của chúng một cách đáng tin cậy từ chính những con số đó
Kiểm tra phiên bản tái cấu trúc sau đây của chức năng này
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
9Với những cập nhật nhỏ này, chức năng của bạn giờ đây trông thật quyến rũ. Bạn và bất kỳ nhà phát triển nào khác đang đọc mã của bạn chắc chắn có thể biết hàm này làm gì vì bạn đã thay thế các số ma thuật ban đầu bằng các hằng số được đặt tên phù hợp. Tên của mỗi hằng số giải thích rõ ràng ý nghĩa tương ứng của nó
Mỗi khi bạn thấy mình đang sử dụng một con số kỳ diệu, hãy dành thời gian để thay thế nó bằng một hằng số. Tên của hằng số này phải mang tính mô tả và giải thích rõ ràng ý nghĩa của số ma thuật mục tiêu. Thực hành này sẽ tự động cải thiện khả năng đọc mã của bạn
Tái sử dụng các đối tượng để bảo trì
Một trường hợp sử dụng hàng ngày khác của hằng số là khi bạn có một giá trị nhất định xuất hiện liên tục trong các phần khác nhau của mã của bạn. Nếu bạn chèn giá trị cụ thể vào mã ở mọi vị trí bắt buộc, thì bạn sẽ gặp rắc rối nếu cần thay đổi giá trị vì bất kỳ lý do gì. Trong tình huống này, bạn sẽ cần thay đổi giá trị ở mọi nơi
Thay đổi giá trị mục tiêu ở nhiều nơi cùng một lúc dễ bị lỗi. Ngay cả khi bạn dựa vào tính năng Tìm và Thay thế của trình chỉnh sửa, bạn vẫn có thể để lại một số trường hợp giá trị không thay đổi, điều này có thể dẫn đến các lỗi không mong muốn và các hành vi kỳ lạ sau này
Để tránh những sự cố gây phiền nhiễu này, bạn có thể thay thế giá trị bằng một hằng số được đặt tên phù hợp. Điều này sẽ cho phép bạn đặt giá trị một lần và lặp lại giá trị đó ở nhiều vị trí nếu cần. Nếu bạn cần thay đổi giá trị của hằng số, thì bạn chỉ cần thay đổi nó ở một nơi duy nhất. định nghĩa hằng số
Ví dụ: giả sử bạn đang viết một lớp
apple.com86 và bạn cần các phương thức để tính diện tích, chu vi của hình tròn, v.v. Sau một vài phút mã hóa, bạn kết thúc với lớp sau
apple.com8
Ví dụ này khám phá cách giá trị gần đúng của Pi [______193] đã được viết dưới dạng một số ma thuật trong một số phương thức của lớp
apple.com86 của bạn. Tại sao thực hành này là một vấn đề? . Sau đó, bạn sẽ phải thay đổi giá trị theo cách thủ công ở ít nhất ba vị trí khác nhau, điều này rất tẻ nhạt và dễ bị lỗi, khiến mã của bạn khó bảo trì
Ghi chú. Nói chung, bạn không cần phải tự xác định số Pi. Python vận chuyển với một số hằng số tích hợp, bao gồm Pi. Bạn sẽ thấy cách tận dụng nó
Sử dụng một hằng số được đặt tên để lưu trữ giá trị của Pi là một cách tiếp cận tuyệt vời để giải quyết những vấn đề này. Đây là phiên bản nâng cao của đoạn mã trên
apple.com9
Phiên bản này của
apple.com86 sử dụng hằng số toàn cầu
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
96 để thay thế số ma thuật. Mã này có một số ưu điểm so với mã gốc. Nếu bạn cần tăng độ chính xác của Pi, thì bạn chỉ cần cập nhật giá trị của hằng số # assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
96 ở đầu tệp. Bản cập nhật này sẽ ngay lập tức phản ánh phần còn lại của mã mà không yêu cầu bạn thực hiện thêm bất kỳ hành động nàoGhi chú. Các hằng số không nên thay đổi trong quá trình thực thi mã của bạn. Tuy nhiên, trong quá trình phát triển, bạn có thể thay đổi và điều chỉnh các hằng số theo nhu cầu của mình. Cập nhật độ chính xác của Pi trong lớp
apple.com86 của bạn là một ví dụ điển hình về lý do tại sao bạn có thể cần thay đổi giá trị của hằng số trong quá trình phát triển mã của mình
Một lợi thế khác là bây giờ mã của bạn dễ đọc hơn và dễ hiểu hơn. Tên của hằng số là tự giải thích và phản ánh thuật ngữ toán học được chấp nhận
Khai báo một hằng số một lần và sau đó sử dụng lại nó nhiều lần, như bạn đã làm trong ví dụ trên, thể hiện sự cải thiện đáng kể về khả năng bảo trì. Nếu bạn phải cập nhật giá trị của hằng số, thì bạn sẽ cập nhật giá trị đó ở một nơi duy nhất thay vì ở nhiều nơi, nghĩa là ít nỗ lực hơn và ít rủi ro lỗi hơn
Loại bỏ các quảng cáoCung cấp giá trị đối số mặc định
Sử dụng các hằng số được đặt tên để cung cấp các giá trị đối số mặc định cho các hàm, phương thức và lớp là một cách phổ biến khác trong Python. Có rất nhiều ví dụ về thực hành này trong thư viện chuẩn Python
Ví dụ: mô-đun
site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
73 cung cấp các công cụ để tạo, đọc, viết, nối thêm và liệt kê các tệp ZIP. Lớp có liên quan nhất trong mô-đun này là. Với site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
74, bạn có thể thao tác các tệp ZIP của mình một cách hiệu quả và nhanh chóngHàm tạo của lớp
site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
74 lấy một đối số có tên là site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
77, cho phép bạn chọn trong số một số phương thức nén dữ liệu có sẵn. Đối số này là tùy chọn và có giá trị mặc định, nghĩa là site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
74 không nén dữ liệu đầu vào theo mặc địnhTrong ví dụ này,
site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
78 là một hằng số được định nghĩa trong site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
73. Hằng giữ một giá trị số cho dữ liệu không nén. Bạn cũng sẽ tìm thấy các phương pháp nén khác được biểu thị bằng các hằng số được đặt tên như đối với thuật toán nén Deflate chẳng hạnĐối số
site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
77 trong hàm tạo của lớp site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
74 là một ví dụ điển hình về việc sử dụng hằng số để cung cấp các giá trị đối số mặc định khi bạn có một đối số chỉ có thể nhận một số lượng giá trị hợp lệ giới hạnMột ví dụ khác về thời điểm các hằng số có ích như các giá trị đối số mặc định là khi bạn có một số hàm với đối số lặp lại. Giả sử bạn đang phát triển một ứng dụng kết nối với cơ sở dữ liệu SQLite cục bộ. Ứng dụng của bạn sử dụng bộ chức năng sau để quản lý cơ sở dữ liệu
apple.com8
Các chức năng này thực hiện các hành động khác nhau trên cơ sở dữ liệu SQLite của bạn. Lưu ý rằng tất cả các chức năng của bạn chia sẻ đối số
programiz.pro apple.com75
Trong khi bạn đang phát triển ứng dụng, bạn quyết định cung cấp đường dẫn cơ sở dữ liệu mặc định cho các chức năng của mình để bạn có thể nhanh chóng kiểm tra chúng. Trong trường hợp này, bạn có thể trực tiếp sử dụng đường dẫn làm giá trị mặc định cho đối số
programiz.pro apple.com75
Tuy nhiên, tốt hơn là sử dụng hằng số được đặt tên để cung cấp đường dẫn cơ sở dữ liệu mặc định
site_name = 'programiz.pro'
print[site_name]
# assigning a new value to site_name
site_name = 'apple.com'
print[site_name]
7Bản cập nhật nhỏ này cho phép bạn nhanh chóng thử nghiệm ứng dụng của mình bằng cách nhắm mục tiêu cơ sở dữ liệu mẫu trong quá trình phát triển. Nó cũng cải thiện khả năng bảo trì mã của bạn vì bạn có thể sử dụng lại hằng số này trong các chức năng liên quan đến cơ sở dữ liệu khác xuất hiện trong các phiên bản tương lai của ứng dụng của bạn
Cuối cùng, bạn sẽ tìm thấy các tình huống mà bạn muốn truyền một đối tượng có hành vi nhất định cho một lớp, phương thức hoặc hàm. Thực hành này thường được gọi là và là một nguyên tắc cơ bản trong Python. Bây giờ, giả sử rằng mã của bạn sẽ đảm nhiệm việc cung cấp triển khai tiêu chuẩn của đối tượng được yêu cầu. Nếu người dùng của bạn muốn một đối tượng tùy chỉnh, thì họ nên tự cung cấp nó
Trong tình huống này, bạn có thể sử dụng một hằng số để xác định đối tượng mặc định và sau đó chuyển hằng số này làm giá trị đối số mặc định cho lớp, phương thức hoặc hàm đích. Kiểm tra ví dụ sau về lớp
programiz.pro apple.com77 giả định
programiz.pro apple.com7
Lớp này cung cấp một cách để thao tác các loại tệp khác nhau. Phương thức
programiz.pro apple.com78 sử dụng đối tượng
programiz.pro apple.com79 được chèn để đọc đầu vào
apple.com000 theo định dạng cụ thể của nó
Đây là một triển khai đồ chơi của một lớp người đọc
apple.com00
Phương thức
programiz.pro apple.com78 trong ví dụ này lấy đường dẫn đến tệp, mở tệp và in nội dung của tệp lên màn hình theo từng dòng. Lớp này sẽ đóng vai trò là trình đọc mặc định của bạn. Bước cuối cùng là tạo một hằng số,
apple.com002, để lưu trữ một phiên bản trình đọc mặc định của bạn. Đó là nó. Bạn có một lớp xử lý các tệp đầu vào và cũng có một lớp trợ giúp cung cấp trình đọc mặc định
Người dùng của bạn cũng có thể viết mã trình đọc tùy chỉnh. Ví dụ: họ có thể đọc mã cho các tệp CSV và JSON. Khi họ đã viết một trình đọc nhất định, họ có thể chuyển nó vào hàm tạo của lớp
apple.com003 và sử dụng thể hiện kết quả để xử lý các tệp sử dụng định dạng tệp đích của trình đọcLoại bỏ các quảng cáo
Xử lý các hằng số của bạn trong một dự án trong thế giới thực
Bây giờ bạn đã biết cách tạo hằng số trong Python, đã đến lúc tìm hiểu cách xử lý và sắp xếp chúng trong một dự án thực tế. Bạn có thể sử dụng một số cách tiếp cận hoặc chiến lược cho mục đích này. Ví dụ: bạn có thể đặt các hằng số của mình vào
- Tệp giống như mã sử dụng chúng
- Một mô-đun chuyên dụng cho các hằng số trong toàn dự án
- Một tập tin cấu hình
- Một số biến môi trường
Trong các phần tiếp theo, bạn sẽ viết một số ví dụ thực tế minh họa các chiến lược trên để quản lý các hằng số một cách thích hợp
Đặt các hằng số cùng với mã liên quan
Chiến lược đầu tiên và có lẽ là tự nhiên nhất để tổ chức và quản lý các hằng số của bạn là xác định chúng cùng với mã sử dụng chúng. Với phương pháp này, bạn sẽ xác định các hằng số ở đầu mô-đun chứa mã liên quan
Ví dụ: giả sử bạn đang tạo một mô-đun tùy chỉnh để thực hiện các phép tính và bạn cần sử dụng các hằng số toán học như số Pi, số Euler và một số khác. Trong trường hợp này, bạn có thể làm một cái gì đó như thế này
apple.com01
Trong ví dụ này, bạn xác định các hằng số của mình trong cùng một mô-đun nơi mã sử dụng chúng tồn tại
Ghi chú. Nếu bạn muốn thông báo rõ ràng rằng một hằng số chỉ nên được sử dụng trong mô-đun chứa nó, thì bạn có thể thêm dấu gạch dưới ở đầu [
apple.com82] vào tên của nó. Ví dụ: bạn có thể làm điều gì đó như
apple.com005. Dấu gạch dưới hàng đầu này gắn nhãn tên là , có nghĩa là mã của người dùng không được sử dụng trực tiếp tên này
Đặt các hằng số của bạn cùng với mã sử dụng chúng là một chiến lược nhanh chóng và thích hợp cho các hằng số phạm vi hẹp chỉ liên quan đến một mô-đun trong một dự án nhất định. Trong trường hợp này, có thể bạn sẽ không sử dụng các hằng bên ngoài mô-đun chứa
Tạo một mô-đun chuyên dụng cho các hằng số
Một chiến lược phổ biến khác để tổ chức và quản lý các hằng số của bạn là tạo một mô-đun chuyên dụng để đặt tất cả chúng vào đó. Chiến lược này phù hợp với các hằng số được sử dụng trong nhiều mô-đun và thậm chí cả các gói trong một dự án nhất định
Ý tưởng chính của chiến lược này là tạo ra một không gian tên trực quan và duy nhất cho các hằng số. Để áp dụng chiến lược này cho ví dụ tính toán của bạn, bạn có thể tạo gói Python chứa các tệp sau
apple.com02
Tệp
apple.com006 sẽ biến thư mục
apple.com007 thành gói Python. Sau đó, bạn có thể thêm nội dung sau vào tệp
apple.com008 của mình
apple.com03
Khi bạn đã thêm mã này vào
apple.com008, thì bạn có thể nhập mô-đun bất cứ khi nào bạn cần sử dụng bất kỳ hằng số nào của mình
apple.com04
Lưu ý rằng bạn nhập mô-đun
apple.com010 trực tiếp từ gói
apple.com011 bằng cách sử dụng. Sau đó, bạn sử dụng tên đủ điều kiện để truy cập bất kỳ hằng số bắt buộc nào trong tính toán của mình. Thực hành này cải thiện giao tiếp của bạn về ý định. Bây giờ hoàn toàn rõ ràng rằng
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
96 và apple.com013 là các hằng số trong dự án của bạn vì tiền tố
apple.com010
Để sử dụng mô-đun
apple.com015 của bạn, bạn có thể làm điều gì đó như thế này
>>>
apple.com05
Bây giờ mô-đun
apple.com015 của bạn nằm trong gói
apple.com011. Điều này có nghĩa là nếu bạn muốn sử dụng các chức năng trong
apple.com015, thì bạn cần nhập
apple.com015 từ
apple.com011. Bạn cũng có thể nhập trực tiếp các hàm bằng cách tham khảo gói và mô-đun giống như bạn đã làm trong ví dụ thứ hai ở trênLoại bỏ các quảng cáo
Lưu trữ hằng số trong tệp cấu hình
Bây giờ, giả sử rằng bạn muốn tiến xa hơn khi nói đến việc ngoại hóa các hằng số của một dự án nhất định. Bạn có thể cần loại bỏ tất cả các hằng số khỏi mã nguồn của dự án. Để làm điều này, bạn có thể sử dụng tệp cấu hình bên ngoài
Đây là một ví dụ về cách di chuyển hằng số của bạn sang tệp cấu hình
apple.com06
Tệp này sử dụng định dạng tệp INI. Bạn có thể đọc loại tệp này bằng mô-đun
apple.com021 từ thư viện chuẩn
Bây giờ hãy quay lại
apple.com022 và cập nhật nó để trông giống như sau
apple.com07
Trong ví dụ này, mã của bạn trước tiên đọc tệp cấu hình và lưu đối tượng kết quả là
apple.com023 trong một biến toàn cục,
apple.com010. Bạn cũng có thể đặt tên cho biến này là
apple.com025 và sử dụng nó trên toàn cầu như một hằng số. Sau đó, bạn cập nhật các tính toán của mình để đọc các hằng số từ chính đối tượng cấu hình
Lưu ý rằng các đối tượng
apple.com023 lưu trữ các tham số cấu hình dưới dạng chuỗi, vì vậy bạn cần sử dụng hàm
apple.com027 tích hợp để chuyển đổi các giá trị thành số
Chiến lược này có thể hữu ích khi bạn đang tạo ứng dụng giao diện người dùng đồ họa [GUI] và cần đặt một số tham số để xác định hình dạng và kích thước cửa sổ của ứng dụng khi tải và hiển thị GUI chẳng hạn
Xử lý hằng số dưới dạng biến môi trường
Một chiến lược hữu ích khác để xử lý các hằng số của bạn là xác định chúng là biến hệ thống nếu bạn đang sử dụng Windows hoặc biến môi trường nếu bạn đang sử dụng macOS hoặc Linux
Cách tiếp cận này thường được sử dụng để định cấu hình triển khai trong các môi trường khác nhau. Bạn cũng có thể sử dụng các biến môi trường cho các hằng số tiềm ẩn rủi ro bảo mật và không nên cam kết trực tiếp với mã nguồn. Ví dụ về các loại hằng số này bao gồm thông tin đăng nhập xác thực, mã thông báo truy cập API, v.v.
Ghi chú. Bạn nên cẩn thận khi sử dụng các biến môi trường cho thông tin nhạy cảm vì chúng có thể vô tình bị lộ trong nhật ký hoặc các tiến trình con. Tất cả các nhà cung cấp đám mây đều cung cấp một số loại quản lý bí mật an toàn hơn
Để sử dụng chiến lược này, trước tiên bạn phải xuất các hằng số của mình dưới dạng biến môi trường hoặc hệ thống trong hệ điều hành của bạn. Có ít nhất hai cách để làm điều này
- Xuất thủ công các hằng số trong phiên shell hiện tại của bạn
- Thêm các hằng số của bạn vào tệp cấu hình của trình bao
Kỹ thuật đầu tiên khá nhanh và thiết thực. Bạn có thể sử dụng nó để chạy một số thử nghiệm nhanh trên mã của mình. Ví dụ: giả sử bạn cần xuất mã thông báo API dưới dạng biến hệ thống hoặc môi trường. Trong trường hợp đó, bạn chỉ cần chạy lệnh sau
apple.com08
apple.com09
Hạn chế chính của kỹ thuật này là các hằng số của bạn sẽ chỉ có thể truy cập được từ phiên dòng lệnh mà bạn đã xác định chúng. Một cách tiếp cận tốt hơn nhiều là làm cho hệ điều hành của bạn tải các hằng số bất cứ khi nào bạn kích hoạt cửa sổ dòng lệnh
Nếu bạn đang sử dụng Windows, hãy xem phần trong Môi trường mã hóa Python của bạn trên Windows. Hướng dẫn thiết lập để tìm hiểu cách tạo biến hệ thống. Thực hiện theo các hướng dẫn trong hướng dẫn này và thêm một biến hệ thống
apple.com028 với giá trị là
apple.com029
Nếu bạn đang dùng Linux hoặc macOS, thì bạn có thể vào thư mục chính của mình và mở tệp cấu hình shell của bạn. Khi bạn đã mở tệp đó, hãy thêm dòng sau vào cuối tệp
apple.com50
apple.com51
Linux và macOS tự động tải tệp cấu hình trình bao tương ứng bất cứ khi nào bạn khởi động thiết bị đầu cuối hoặc cửa sổ dòng lệnh. Bằng cách này, bạn đảm bảo rằng biến
apple.com028 luôn có sẵn trên hệ thống của mình
Khi bạn đã xác định các biến môi trường bắt buộc cho hằng số Python của mình, thì bạn cần tải chúng vào mã của mình. Để làm điều này, bạn có thể sử dụng từ điển từ mô-đun của Python. Các khóa và giá trị của
apple.com031 lần lượt là các chuỗi đại diện cho các biến môi trường và giá trị của chúng
Hằng số
apple.com028 của bạn hiện có trong từ điển
apple.com031. Do đó, bạn có thể đọc nó từ đó chỉ với hai dòng mã
>>>
apple.com52
Sử dụng các biến môi trường để lưu trữ các hằng số và từ điển
apple.com036 để đọc chúng vào mã của bạn, là một cách hiệu quả để định cấu hình các hằng số phụ thuộc vào môi trường mà ứng dụng của bạn được triển khai trong đó. Nó đặc biệt hữu ích khi làm việc với đám mây, vì vậy hãy giữ kỹ thuật này trong bộ công cụ Python của bạnLoại bỏ các quảng cáo
Khám phá các hằng số khác trong Python
Ngoài các hằng số do người dùng định nghĩa, Python còn định nghĩa một số tên nội bộ có thể được coi là hằng số. Một số tên này là hằng số nghiêm ngặt, nghĩa là bạn không thể thay đổi chúng sau khi trình thông dịch đang chạy. Đây là trường hợp của hằng số, ví dụ
Trong các phần sau, bạn sẽ tìm hiểu về một số tên Python nội bộ mà bạn có thể xem xét và nên coi là hằng số trong mã của mình. Để bắt đầu, bạn sẽ xem lại một số hằng số và giá trị hằng số được tích hợp sẵn
Hằng số tích hợp
Theo tài liệu về Python, “Một số lượng nhỏ hằng số tồn tại trong không gian tên dựng sẵn” [Nguồn]. Hai hằng số đầu tiên được liệt kê trong tài liệu là
apple.com038 và
apple.com039, là các giá trị Boolean của Python. Hai giá trị này cũng là trường hợp của
apple.com040.
apple.com038 có giá trị là
apple.com042 và
apple.com039 có giá trị là
apple.com80
>>>
apple.com53
Lưu ý rằng tên
apple.com038 và
apple.com039 là các hằng số nghiêm ngặt. Nói cách khác, chúng không thể được chỉ định lại. Nếu bạn cố gán lại chúng, bạn sẽ nhận được một
apple.com047. Hai giá trị này cũng là các đối tượng đơn lẻ trong Python, nghĩa là chỉ có một phiên bản của mỗi đối tượng. Đó là lý do tại sao toán tử nhận dạng [
apple.com048] trả về
apple.com038 trong các ví dụ cuối cùng ở trên
Một giá trị hằng phổ biến và quan trọng khác là
apple.com050, là giá trị null trong Python. Giá trị không đổi này có ích khi bạn muốn thể hiện ý tưởng về tính vô hiệu. Cũng giống như
apple.com038 và
apple.com039,
apple.com050 cũng là một đối tượng hằng đơn và nghiêm ngặt không thể gán lại
>>>
apple.com54
apple.com050 khá hữu ích như một giá trị đối số mặc định trong các hàm, phương thức và hàm tạo của lớp. Nó thường được sử dụng để thông báo rằng một biến trống. Trong nội bộ, Python sử dụng
apple.com050 làm giá trị trả về ẩn của các hàm không có
Dấu chấm lửng bằng chữ [
apple.com057] là một giá trị không đổi khác trong Python. Giá trị đặc biệt này giống như
apple.com058 và là trường hợp duy nhất của loại
>>>
apple.com55
Bạn có thể sử dụng
apple.com058 làm trình giữ chỗ cho mã chưa viết. Bạn cũng có thể sử dụng nó để thay thế câu lệnh
apple.com061. Trong các gợi ý về loại, chữ
apple.com057 truyền đạt ý tưởng về một dữ liệu có loại thống nhất
>>>
apple.com56
Giá trị hằng số
apple.com058 có thể hữu ích trong nhiều tình huống và giúp bạn làm cho mã của mình dễ đọc hơn do tính tương đương về mặt ngữ nghĩa của nó với dấu chấm câu dấu chấm lửng trong tiếng Anh […]
Một hằng số tích hợp thú vị và có khả năng hữu ích khác là
apple.com037, như bạn đã học ở phần đầu của phần này.
apple.com037 của Python là một hằng số Boolean mặc định là
apple.com038. Đó là một hằng số nghiêm ngặt vì bạn không thể thay đổi giá trị của nó sau khi trình thông dịch của bạn đang chạy
>>>
apple.com57
Hằng số
apple.com037 có liên quan chặt chẽ với câu lệnh
apple.com068. Nói tóm lại, nếu
apple.com037 là
apple.com038, thì tất cả các câu lệnh
apple.com068 của bạn sẽ chạy. Nếu
apple.com037 là
apple.com039, thì câu lệnh
apple.com068 của bạn sẽ bị vô hiệu hóa và hoàn toàn không chạy. Tính năng này có thể cải thiện một chút hiệu suất của mã sản xuất của bạn
Ghi chú. Mặc dù
apple.com037 cũng có một cái tên ngớ ngẩn, nhưng đó là một hằng số nghiêm ngặt vì bạn không thể thay đổi giá trị của nó sau khi trình thông dịch đang chạy. Ngược lại, các tên nội bộ trong phần bên dưới nên được coi là hằng số nhưng không phải là hằng số nghiêm ngặt. Bạn có thể thay đổi giá trị của chúng trong quá trình thực thi mã của mình. Tuy nhiên, cách làm này có thể phức tạp và đòi hỏi kiến thức nâng cao
Để thay đổi giá trị của
apple.com037 thành
apple.com039, bạn phải chạy Python ở chế độ được tối ưu hóa bằng cách sử dụng tùy chọn dòng lệnh hoặc, cung cấp hai cấp độ tối ưu hóa. Cả hai cấp độ đều tạo mã byte Python được tối ưu hóa không chứa xác nhậnLoại bỏ các quảng cáo
Tên Dunder nội bộ
Python cũng có một tập hợp rộng các tên nội bộ mà bạn có thể coi là hằng số. Vì có một số tên đặc biệt này nên bạn sẽ chỉ tìm hiểu về và trong hướng dẫn này
Ghi chú. Để tìm hiểu sâu hơn về các tên gọi khác trong Python và ý nghĩa của chúng đối với ngôn ngữ này, hãy xem tài liệu chính thức về Python
Thuộc tính
apple.com080 có liên quan chặt chẽ đến cách bạn chạy một đoạn mã nhất định. Khi nhập một mô-đun, Python sẽ đặt nội bộ
apple.com080 thành một chuỗi chứa tên của mô-đun mà bạn đang nhập
Khởi động trình chỉnh sửa mã của bạn và tạo mô-đun mẫu sau
apple.com58
Khi bạn đã có tệp này, hãy quay lại cửa sổ dòng lệnh của bạn và chạy lệnh sau
apple.com59
Với công tắc
apple.com084, bạn có thể thực thi một đoạn mã Python nhỏ tại dòng lệnh. Trong ví dụ này, bạn nhập mô-đun
apple.com085, mô-đun này sẽ in một số thông báo ra màn hình. Thông báo đầu tiên cho bạn biết rằng
apple.com080 thuộc loại hoặc chuỗi. Thông báo thứ hai cho thấy rằng
apple.com080 đã được đặt thành
apple.com085, đây là tên của mô-đun bạn vừa nhập
Ngoài ra, nếu bạn lấy
apple.com090 và chạy nó dưới dạng tập lệnh, thì Python sẽ đặt
apple.com080 thành chuỗi
apple.com092. Để xác nhận thực tế này, hãy tiếp tục và chạy lệnh sau
apple.com60
Lưu ý rằng bây giờ
apple.com080 giữ chuỗi
apple.com092. Hành vi này cho biết rằng bạn đã chạy tệp trực tiếp dưới dạng chương trình Python thực thi
Thuộc tính
apple.com081 sẽ chứa đường dẫn đến tệp mà Python hiện đang nhập hoặc thực thi. Bạn có thể sử dụng
apple.com081 từ bên trong một mô-đun nhất định khi bạn cần lấy đường dẫn đến chính mô-đun đó
Để làm ví dụ về cách hoạt động của
apple.com081, hãy tiếp tục và tạo mô-đun sau
apple.com61
Nếu bạn nhập mô-đun
apple.com098 vào mã Python của mình, thì
apple.com081 sẽ lưu trữ đường dẫn đến mô-đun chứa nó trên hệ thống tệp của bạn. Kiểm tra điều này bằng cách chạy lệnh sau
apple.com62
Tương tự như vậy, nếu bạn chạy
apple.com500 dưới dạng chương trình thực thi Python, thì bạn sẽ nhận được kết quả giống như trước đây
apple.com63
Tóm lại, Python đặt
apple.com081 để chứa đường dẫn đến mô-đun mà bạn đang sử dụng hoặc truy cập thuộc tính nàyLoại bỏ các quảng cáo
Các hằng số toán học và chuỗi hữu ích
Bạn sẽ tìm thấy nhiều hằng số hữu ích trong thư viện chuẩn. Một số trong số chúng được kết nối chặt chẽ với một số mô-đun, chức năng và lớp cụ thể. Những cái khác chung chung hơn và bạn có thể sử dụng chúng trong nhiều tình huống khác nhau. Đó là trường hợp của một số hằng số liên quan đến toán học và chuỗi mà bạn có thể tìm thấy trong
apple.com502 và các mô-đun tương ứng
Mô-đun
apple.com502 cung cấp các hằng số sau
>>>
apple.com64
Các hằng số này sẽ hữu ích bất cứ khi nào bạn viết mã liên quan đến toán học hoặc thậm chí mã chỉ sử dụng chúng để thực hiện các tính toán cụ thể, chẳng hạn như lớp
apple.com86 của bạn trong phần
Dưới đây là triển khai cập nhật của
apple.com86 bằng cách sử dụng
apple.com507 thay vì hằng số
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
96 tùy chỉnh của bạnapple.com65
Phiên bản cập nhật này của
apple.com86 dễ đọc hơn phiên bản gốc của bạn vì nó cung cấp thêm ngữ cảnh về nguồn gốc của hằng số Pi, làm rõ rằng đó là một hằng số liên quan đến toán học
Hằng số
apple.com507 cũng có lợi thế là nếu bạn đang sử dụng phiên bản Python cũ hơn thì bạn sẽ nhận được phiên bản 32-bit của Pi. Ngược lại, nếu bạn sử dụng
apple.com86 trong phiên bản Python hiện đại, thì bạn sẽ nhận được phiên bản 64-bit của Pi. Vì vậy, chương trình của bạn sẽ tự thích ứng với môi trường thực thi cụ thể của nó
Mô-đun
apple.com503 cũng xác định một số hữu ích. Bảng dưới đây cho thấy tên và giá trị của mỗi hằng số
NameValue
apple.com513abcdefghijklmnopqrstuvwxyz
apple.com514ABCDEFGHIJKLMNOPQRSTUVWXYZ
apple.com515ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
apple.com5160123456789
apple.com5170123456789abcdefABCDEF
apple.com51801234567
apple.com519!"#$%&'[]*+,-./:;?@[\]^_`{|}~
apple.com520The combination of the space character, , linefeed, carriage return, and
apple.com521The combination of
apple.com516,
apple.com515,
apple.com519, and
apple.com520
Các hằng số liên quan đến chuỗi này có ích trong nhiều tình huống. Bạn có thể sử dụng chúng khi bạn đang xử lý nhiều chuỗi, làm việc với các biểu thức thông thường, xử lý ngôn ngữ tự nhiên, v.v.
Các hằng chú thích kiểu
Kể từ Python 3. 8, mô-đun
apple.com526 bao gồm một lớp cho phép bạn nhập các hằng số chú thích. Nếu bạn sử dụng lớp này khi xác định các hằng số của mình, thì bạn sẽ nói với những người kiểm tra kiểu tĩnh như mypy rằng các hằng số của bạn không nên được gán lại. Bằng cách này, trình kiểm tra loại có thể giúp bạn phát hiện các phép gán trái phép trên các hằng số của bạn
Dưới đây là một số ví dụ về việc sử dụng
apple.com527 để xác định hằng số của bạn
apple.com66
Lớp
apple.com527 đại diện cho một cấu trúc gõ đặc biệt cho biết trình kiểm tra loại báo cáo lỗi nếu tên hiện tại được gán lại tại một số điểm trong mã của bạn. Lưu ý rằng mặc dù bạn nhận được báo cáo lỗi của trình kiểm tra loại, Python vẫn thay đổi giá trị của
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
92. Vì vậy, apple.com527 không ngăn việc vô tình gán lại liên tục trong thời gian chạy
Xác định hằng số nghiêm ngặt trong Python
Cho đến thời điểm này, bạn đã học được rất nhiều về lập trình và hằng số Python. Bây giờ bạn đã biết rằng Python không hỗ trợ các hằng số nghiêm ngặt. Nó chỉ có các biến. Do đó, cộng đồng Python đã áp dụng quy ước đặt tên sử dụng các chữ cái viết hoa để thông báo rằng một biến đã cho thực sự là một hằng số.
Vì vậy, trong Python, bạn không có hằng số. Thay vào đó, bạn có các biến không bao giờ thay đổi. Đây có thể là một vấn đề nếu bạn đang làm việc trên một dự án Python lớn với nhiều lập trình viên ở các cấp độ khác nhau. Trong tình huống này, thật tuyệt nếu có một cơ chế đảm bảo các hằng số nghiêm ngặt— những hằng số mà không ai có thể thay đổi sau khi chương trình đã bắt đầu
Bởi vì Python là một ngôn ngữ lập trình khá linh hoạt, bạn sẽ tìm thấy một số cách để đạt được mục tiêu làm cho hằng số của bạn không thể thay đổi được. Trong một vài phần sau đây, bạn sẽ tìm hiểu về một số cách này. Tất cả đều ngụ ý tạo một lớp tùy chỉnh và sử dụng nó làm không gian tên cho các hằng số
Tại sao bạn nên sử dụng một lớp làm không gian tên cho các hằng số của mình? . Ở cấp độ mô-đun, bạn không có các công cụ thích hợp để ngăn điều này xảy ra. Vì vậy, bạn cần sử dụng một lớp vì các lớp cung cấp nhiều công cụ tùy chỉnh hơn các mô-đun
Trong các phần sau, bạn sẽ tìm hiểu về một số cách khác nhau để sử dụng một lớp làm không gian tên cho các hằng số nghiêm ngặt.
Loại bỏ các quảng cáoThuộc tính apple.com
532
Các lớp Python cho phép bạn định nghĩa một thuộc tính lớp đặc biệt gọi là. Thuộc tính này sẽ chứa một chuỗi các tên sẽ hoạt động như các thuộc tính mẫu
Bạn sẽ không thể thêm thuộc tính thể hiện mới vào một lớp có thuộc tính
apple.com532, vì
apple.com532 ngăn việc tạo thuộc tính thể hiện. Ngoài ra, việc không có thuộc tính
apple.com536 có nghĩa là tối ưu hóa về mức tiêu thụ bộ nhớ
Sử dụng
apple.com532, bạn có thể tạo một lớp hoạt động như một không gian tên cho các hằng số chỉ đọc
>>>
apple.com67
Trong ví dụ này, bạn xác định
apple.com539. Thuộc tính
apple.com532 của lớp chứa một bộ dữ liệu trống, nghĩa là các thể hiện của lớp này sẽ không có thuộc tính nào. Sau đó, bạn định nghĩa các hằng số của mình là thuộc tính lớp
Bước tiếp theo là khởi tạo lớp để tạo một biến chứa không gian tên với tất cả các hằng số của bạn. Lưu ý rằng bạn có thể nhanh chóng truy cập bất kỳ hằng số nào trong không gian tên đặc biệt của mình, nhưng bạn không thể gán cho nó một giá trị mới. Nếu bạn cố gắng làm điều đó, thì bạn sẽ nhận được một
apple.com541
Với kỹ thuật này, bạn đảm bảo rằng không ai khác trong nhóm của bạn có thể thay đổi giá trị của các hằng số của bạn. Bạn đã đạt được hành vi mong đợi của một hằng số nghiêm ngặt
Người trang trí apple.com
542
Bạn cũng có thể tận dụng trình trang trí
apple.com542 để tạo một lớp hoạt động như một không gian tên cho các hằng số của bạn. Để làm điều này, bạn chỉ cần xác định các hằng số của mình dưới dạng thuộc tính mà không cần cung cấp phương thức setter cho chúng
>>>
apple.com68
Vì bạn không cung cấp các phương thức setter cho các thuộc tính
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
96 và apple.com013 nên chúng. Điều này có nghĩa là bạn chỉ có thể truy cập các giá trị của chúng. Không thể gán giá trị mới cho một trong hai. Nếu bạn cố gắng làm điều đó, thì bạn sẽ nhận được một
apple.com541
Hàm nhà máy apple.com
547
Mô-đun của Python cung cấp một chức năng xuất xưởng được gọi là. Hàm này cho phép bạn tạo các lớp con bộ cho phép sử dụng các trường được đặt tên và ký hiệu dấu chấm để truy cập các mục của chúng, như trong
apple.com550
Giống như các bộ dữ liệu thông thường, các thể hiện của bộ dữ liệu được đặt tên là , có nghĩa là bạn không thể sửa đổi một đối tượng bộ dữ liệu có tên hiện có tại chỗ. Âm thanh bất biến phù hợp để tạo một lớp hoạt động như một không gian tên của các hằng số nghiêm ngặt
Đây là cách thực hiện
>>>
apple.com69
Trong ví dụ này, các hằng số của bạn đóng vai trò của các trường trong bộ có tên bên dưới,
apple.com539. Khi bạn đã tạo phiên bản bộ dữ liệu có tên,
apple.com010, bạn có thể truy cập các hằng số của mình bằng cách sử dụng ký hiệu dấu chấm, như trong
apple.com553
Vì các bộ dữ liệu là bất biến nên không có cách nào để bạn sửa đổi giá trị của bất kỳ trường nào. Vì vậy, đối tượng bộ dữ liệu có tên
apple.com010 của bạn là một không gian tên đầy đủ của các hằng số nghiêm ngặt
Người trang trí apple.com
555
Các lớp dữ liệu là các lớp chứa chủ yếu là dữ liệu, như tên của chúng chỉ ra. Họ cũng có thể có phương pháp, nhưng đó không phải là mục tiêu chính của họ. Để tạo một lớp dữ liệu, bạn cần sử dụng trình trang trí từ mô-đun
Làm thế nào bạn có thể sử dụng loại lớp này để tạo một không gian tên của các hằng số nghiêm ngặt? . Nếu nó là bất biến, thì khi bạn đã tạo một thể hiện của một lớp dữ liệu nhất định, bạn không có cách nào để sửa đổi các thuộc tính thể hiện của nó
Đây là cách bạn có thể sử dụng một lớp dữ liệu để tạo một không gian tên chứa các hằng số của bạn
>>>
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
90Trong ví dụ này, trước tiên bạn nhập trình trang trí
apple.com555. Sau đó, bạn sử dụng trình trang trí này để biến
apple.com539 thành một lớp dữ liệu. Để làm cho lớp dữ liệu trở nên bất biến, bạn đặt đối số
apple.com559 thành
apple.com038. Cuối cùng, bạn định nghĩa
apple.com539 với các hằng số của mình dưới dạng thuộc tính lớp
Bạn có thể tạo một thể hiện của lớp này và sử dụng nó làm không gian tên hằng số của bạn. Một lần nữa, bạn có thể truy cập tất cả các hằng số, nhưng bạn không thể sửa đổi giá trị của chúng, vì lớp dữ liệu bị đóng băng
Phương pháp đặc biệt apple.com
565
Các lớp Python cho phép bạn định nghĩa một phương thức đặc biệt gọi là. Phương thức này cho phép bạn tùy chỉnh quy trình gán thuộc tính vì Python tự động gọi phương thức này trên mọi thuộc tính được gán
Trong thực tế, bạn có thể ghi đè lên
apple.com565 để ngăn tất cả việc gán lại thuộc tính và làm cho thuộc tính của bạn không thể thay đổi. Đây là cách bạn có thể ghi đè phương thức này để tạo một lớp hoạt động như một không gian tên cho các hằng số của bạn
>>>
# assign value to site_name variable
site_name = 'programiz.pro'
print[site_name]
# Output: programiz.pro
91Việc triển khai tùy chỉnh của bạn đối với
apple.com565 không thực hiện bất kỳ thao tác gán nào trên các thuộc tính của lớp. Nó chỉ tăng
apple.com541 khi bạn cố gắng đặt bất kỳ thuộc tính nào. Việc thực hiện này làm cho các thuộc tính không thay đổi. Một lần nữa,
apple.com539 của bạn hoạt động như một không gian tên cho các hằng số
Phần kết luận
Bây giờ bạn đã biết hằng số là gì, cũng như lý do và thời điểm sử dụng chúng trong mã của bạn. Bạn cũng biết rằng Python không có hằng số nghiêm ngặt. Cộng đồng Python sử dụng các chữ cái viết hoa như một quy ước đặt tên để thông báo rằng một biến nên được sử dụng như một hằng số. Quy ước đặt tên này giúp ngăn các nhà phát triển khác thay đổi các biến có nghĩa là không đổi
Các hằng số có ở mọi nơi trong lập trình và các nhà phát triển Python cũng sử dụng chúng. Vì vậy, học cách định nghĩa và sử dụng hằng trong Python là một kỹ năng quan trọng để bạn thành thạo
Trong hướng dẫn này, bạn đã học cách
- Xác định hằng số Python trong mã của bạn
- Xác định và hiểu một số hằng số tích hợp
- Cải thiện khả năng đọc, khả năng sử dụng lại và khả năng bảo trì của mã của bạn với các hằng số
- Sử dụng các chiến lược khác nhau để tổ chức và quản lý các hằng số trong một dự án thực tế
- Áp dụng các kỹ thuật khác nhau để làm cho các hằng số Python của bạn không đổi một cách nghiêm ngặt
Với kiến thức này về hằng số là gì, tại sao chúng quan trọng và khi nào sử dụng chúng, bạn đã sẵn sàng bắt đầu cải thiện khả năng đọc, khả năng bảo trì và khả năng sử dụng lại của mã ngay lập tức. Đi trước và cung cấp cho nó một thử
Mã mẫu. Nhấp vào đây để tải xuống mã mẫu hướng dẫn bạn cách sử dụng hằng số trong Python
Đánh dấu là đã hoàn thành
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về Leodanis Pozo Ramos
Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác
» Tìm hiểu thêm về LeodanisMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
Geir Arne
kate
Martin
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi