Quy ước đặt tên hằng số toàn cầu của Python

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.com
0 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.com
0 là một chuỗi và khai báo biến
apple.com
2 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.com
3 thành
apple.com
4

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
0

Nế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.com
5 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
0

Tạo một chính. py

# assign value to site_name variable
site_name = 'programiz.pro'

print[site_name]

# Output: programiz.pro
1

Trong 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áo

biế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

  1. Truy cập giá trị của nó
  2. 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ản

Như 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áo

Xá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.com
4

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.com
83 hoặc
apple.com
84

Thực tiễn được đề xuất là xác định các hằng số ở đầu bất kỳ tệp

apple.com
85 nào ngay sau bất kỳ câu lệnh
apple.com
86 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.com
87,
apple.com
88 và
apple.com
89. 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.com
86 nào ngoại trừ nhập khẩu
apple.com
91

Đây là một mô-đun mẫu bao gồm một loạt các tên ngớ ngẩn

apple.com
0

Trong ví dụ này,

apple.com
87 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.com
93 trong mã của mình. Trong trường hợp này, ai đó nhập
apple.com
94 bằng nhập ký tự đại diện sẽ chỉ lấy lại hàm
apple.com
95. Họ sẽ không có quyền truy cập vào
apple.com
88,
apple.com
89 và các tên khác không được liệt kê trên
apple.com
87

Ghi chú. Cấu trúc

apple.com
93 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.com
87 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.com
86 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.com
88 và
apple.com
89 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.com
95 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.com
95 trong thực tế

>>>

apple.com
5

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.com
6

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
9

Vớ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.com
86 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.com
8

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.com
86 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.com
9

Phiên bản này của

apple.com
86 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ào

Ghi 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.com
86 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áo

Cung 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óng

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ấ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 định

Trong 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ạn

Mộ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.com
8

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.com
75

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.com
75

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]
7

Bả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.com
77 giả định

programiz.pro
apple.com
7

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.com
78 sử dụng đối tượng
programiz.pro
apple.com
79 được chèn để đọc đầu vào
apple.com
000 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.com
00

Phương thức

programiz.pro
apple.com
78 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.com
002, để 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.com
003 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 đọc

Loạ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.com
01

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.com
82] vào tên của nó. Ví dụ: bạn có thể làm điều gì đó như
apple.com
005. 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.com
02

Tệp

apple.com
006 sẽ biến thư mục
apple.com
007 thành gói Python. Sau đó, bạn có thể thêm nội dung sau vào tệp
apple.com
008 của mình

apple.com
03

Khi bạn đã thêm mã này vào

apple.com
008, 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.com
04

Lưu ý rằng bạn nhập mô-đun

apple.com
010 trực tiếp từ gói
apple.com
011 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.com
013 là các hằng số trong dự án của bạn vì tiền tố
apple.com
010

Để sử dụng mô-đun

apple.com
015 của bạn, bạn có thể làm điều gì đó như thế này

>>>

apple.com
05

Bây giờ mô-đun

apple.com
015 của bạn nằm trong gói
apple.com
011. Đ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.com
015, thì bạn cần nhập
apple.com
015 từ
apple.com
011. 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ên

Loạ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.com
06

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.com
021 từ thư viện chuẩn

Bây giờ hãy quay lại

apple.com
022 và cập nhật nó để trông giống như sau

apple.com
07

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.com
023 trong một biến toàn cục,
apple.com
010. Bạn cũng có thể đặt tên cho biến này là
apple.com
025 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.com
023 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.com
027 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

  1. Xuất thủ công các hằng số trong phiên shell hiện tại của bạn
  2. 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.com
08

apple.com
09

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.com
028 với giá trị là
apple.com
029

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.com
50

apple.com
51

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.com
028 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.com
031 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.com
028 của bạn hiện có trong từ điển
apple.com
031. Do đó, bạn có thể đọc nó từ đó chỉ với hai dòng mã

>>>

apple.com
52

Sử dụng các biến môi trường để lưu trữ các hằng số và từ điển

apple.com
036 để đọ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ạn

Loạ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.com
038 và
apple.com
039, là các giá trị Boolean của Python. Hai giá trị này cũng là trường hợp của
apple.com
040.
apple.com
038 có giá trị là
apple.com
042 và
apple.com
039 có giá trị là
apple.com
80

>>>

apple.com
53

Lưu ý rằng tên

apple.com
038 và
apple.com
039 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.com
047. 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.com
048] trả về
apple.com
038 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.com
050, 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.com
038 và
apple.com
039,
apple.com
050 cũng là một đối tượng hằng đơn và nghiêm ngặt không thể gán lại

>>>

apple.com
54

apple.com
050 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.com
050 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.com
057] là một giá trị không đổi khác trong Python. Giá trị đặc biệt này giống như
apple.com
058 và là trường hợp duy nhất của loại

>>>

apple.com
55

Bạn có thể sử dụng

apple.com
058 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.com
061. Trong các gợi ý về loại, chữ
apple.com
057 truyền đạt ý tưởng về một dữ liệu có loại thống nhất

>>>

apple.com
56

Giá trị hằng số

apple.com
058 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.com
037, như bạn đã học ở phần đầu của phần này.
apple.com
037 của Python là một hằng số Boolean mặc định là
apple.com
038. Đó 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.com
57

Hằng số

apple.com
037 có liên quan chặt chẽ với câu lệnh
apple.com
068. Nói tóm lại, nếu
apple.com
037 là
apple.com
038, thì tất cả các câu lệnh
apple.com
068 của bạn sẽ chạy. Nếu
apple.com
037 là
apple.com
039, thì câu lệnh
apple.com
068 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.com
037 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.com
037 thành
apple.com
039, 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ận

Loạ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.com
080 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.com
080 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.com
58

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.com
59

Với công tắc

apple.com
084, 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.com
085, 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.com
080 thuộc loại hoặc chuỗi. Thông báo thứ hai cho thấy rằng
apple.com
080 đã được đặt thành
apple.com
085, đây là tên của mô-đun bạn vừa nhập

Ngoài ra, nếu bạn lấy

apple.com
090 và chạy nó dưới dạng tập lệnh, thì Python sẽ đặt
apple.com
080 thành chuỗi
apple.com
092. Để xác nhận thực tế này, hãy tiếp tục và chạy lệnh sau

apple.com
60

Lưu ý rằng bây giờ

apple.com
080 giữ chuỗi
apple.com
092. 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.com
081 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.com
081 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.com
081, hãy tiếp tục và tạo mô-đun sau

apple.com
61

Nếu bạn nhập mô-đun

apple.com
098 vào mã Python của mình, thì
apple.com
081 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.com
62

Tương tự như vậy, nếu bạn chạy

apple.com
500 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.com
63

Tóm lại, Python đặt

apple.com
081 để 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ày

Loạ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.com
502 và các mô-đun tương ứng

Mô-đun

apple.com
502 cung cấp các hằng số sau

>>>

apple.com
64

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.com
86 của bạn trong phần

Dưới đây là triển khai cập nhật của

apple.com
86 bằng cách sử dụng
apple.com
507 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ạn

apple.com
65

Phiên bản cập nhật này của

apple.com
86 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.com
507 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.com
86 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.com
503 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.com
513abcdefghijklmnopqrstuvwxyz
apple.com
514ABCDEFGHIJKLMNOPQRSTUVWXYZ
apple.com
515ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
apple.com
5160123456789
apple.com
5170123456789abcdefABCDEF
apple.com
51801234567
apple.com
519!"#$%&'[]*+,-./:;?@[\]^_`{|}~
apple.com
520The combination of the space character, , linefeed, carriage return, and
apple.com
521The combination of
apple.com
516,
apple.com
515,
apple.com
519, and
apple.com
520

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.com
526 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.com
527 để xác định hằng số của bạn

apple.com
66

Lớp

apple.com
527 đạ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.com
527 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áo

Thuộ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.com
532, vì
apple.com
532 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.com
536 có nghĩa là tối ưu hóa về mức tiêu thụ bộ nhớ

Sử dụng

apple.com
532, 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.com
67

Trong ví dụ này, bạn xác định

apple.com
539. Thuộc tính
apple.com
532 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.com
541

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.com
542 để 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.com
68

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.com
013 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.com
541

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.com
550

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.com
69

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.com
539. Khi bạn đã tạo phiên bản bộ dữ liệu có tên,
apple.com
010, 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.com
553

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.com
010 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
90

Trong ví dụ này, trước tiên bạn nhập trình trang trí

apple.com
555. Sau đó, bạn sử dụng trình trang trí này để biến
apple.com
539 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.com
559 thành
apple.com
038. Cuối cùng, bạn định nghĩa
apple.com
539 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.com
565 để 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
91

Việc triển khai tùy chỉnh của bạn đối với

apple.com
565 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.com
541 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.com
539 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ề Leodanis

Mỗ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ẻ Email

Bà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

Quy ước đặt tên cho hằng số trong Python là gì?

Trong thực tế, hằng số Python chỉ là 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ữ hằng số, cộng đồng Python đã thông qua một quy ước đặt tên. sử dụng chữ in hoa .

Quy ước đặt tên cho hằng số là gì?

Các hằng phải được viết bằng các ký tự chữ hoa được phân tách bằng dấu gạch dưới . Tên hằng cũng có thể chứa các chữ số nếu thích hợp, nhưng không phải là ký tự đầu tiên.

Hằng số toàn cầu trong Python là gì?

Hằng số toàn cục. Hằng số toàn cầu là giá trị bằng chữ mà bạn gán tên . Giống như biến toàn cục, bạn có thể truy cập giá trị của hằng số toàn cầu từ bất kỳ tập lệnh hoặc thủ tục 4GL nào trong ứng dụng. Bạn đặt giá trị cho hằng số toàn cầu khi bạn khai báo nó.

Quy ước đặt tên danh sách trong Python là gì?

Trong Python, tên biến và hàm phải là chữ thường . Các từ riêng lẻ có thể được phân tách bằng dấu gạch dưới khi cần thiết. Điều này sẽ cải thiện khả năng đọc trong mã của bạn. Tên phương thức phải tuân theo các quy ước giống như tên hàm.

Chủ Đề