Hướng dẫn python global constants best practice - phương pháp hay nhất về hằng số toàn cầu python

Đây là cách tôi tuyên bố các hằng số và sử dụng chúng trên các lớp Python khác nhau:

Show
# project/constants.py
GOOD = 1
BAD = 2
AWFUL = 3

# project/question.py
from constants import AWFUL, BAD, GOOD

class Question:
    def __init__(self):
        ...

Có phải là một cách tốt để lưu trữ và sử dụng các giá trị nội bộ? Tôi nhận ra rằng sau một thời gian, tệp hằng số có thể trở nên khá lớn và tôi có thể nhập rõ hơn 10 trong số các hằng số đó trong bất kỳ tệp nào.

hỏi ngày 14 tháng 6 năm 2011 lúc 15:13Jun 14, 2011 at 15:13

Hướng dẫn python global constants best practice - phương pháp hay nhất về hằng số toàn cầu python

Thierry Lamthierry LamThierry Lam

44.1K40 Huy hiệu vàng115 Huy hiệu bạc144 Huy hiệu đồng40 gold badges115 silver badges144 bronze badges

2

Tại sao không sử dụng

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL

Từ Zen Python:

Không gian tên là tốt. Hãy làm nhiều hơn trong số đó!

Chỉnh sửa: Ngoại trừ, khi bạn thực hiện báo giá, bạn nên bao gồm một tài liệu tham khảo và kiểm tra nó, bởi vì như những người khác đã chỉ ra, nên đọc: Except, when you do quote, you should include a reference and check it, because as others have pointed out, it should read:

Không gian tên là một ý tưởng tuyệt vời tiếng nói - chúng ta hãy làm nhiều hơn trong số đó!

Lần này, tôi thực sự đã sao chép nó từ nguồn: PEP 20 - Zen of Python

Đã trả lời ngày 14 tháng 6 năm 2011 lúc 15:16Jun 14, 2011 at 15:16

Daren Thomasdaren ThomasDaren Thomas

66.3K40 Huy hiệu vàng149 Huy hiệu bạc198 Huy hiệu đồng40 gold badges149 silver badges198 bronze badges

5

Bạn cũng có tùy chọn, nếu các hằng số được gắn với một lớp cụ thể và được sử dụng riêng tư trong lớp đó làm cho chúng cụ thể cho lớp đó:

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...

Và bạn đi.

Đã trả lời ngày 14 tháng 6 năm 2011 lúc 15:19Jun 14, 2011 at 15:19

Wheatieswheatieswheaties

35K14 Huy hiệu vàng89 Huy hiệu bạc129 Huy hiệu đồng14 gold badges89 silver badges129 bronze badges

Bạn có một vài lựa chọn:

  1. Làm theo cách bạn đang làm ngay bây giờ với một tệp hằng số
  2. Sử dụng một tệp phẳng và phân tích nó một lần, vượt qua từ điển / lớp xung quanh
  3. Truy vấn cơ sở dữ liệu

Từ quan điểm trên cao, 1 và 2 là giống nhau. Đối với câu hỏi của bạn về việc nhập các hằng số cụ thể, việc sử dụng một trong các quy ước sau đây sẽ dễ dàng hơn nhiều:

  • class Foo(object):
       GOOD = 0
       BAD = 1
       WTF = -1
    
       def __init__(self...
    
    7
  • class Foo(object):
       GOOD = 0
       BAD = 1
       WTF = -1
    
       def __init__(self...
    
    8

Đã trả lời ngày 14 tháng 6 năm 2011 lúc 15:17Jun 14, 2011 at 15:17

Chris Eberlechris EberleChris Eberle

47.3K12 Huy hiệu vàng80 Huy hiệu bạc118 Huy hiệu đồng12 gold badges80 silver badges118 bronze badges

Đã trả lời ngày 14 tháng 6 năm 2011 lúc 15:20Jun 14, 2011 at 15:20

Artsiom Rudzenkaartsiom RudzenkaArtsiom Rudzenka

27.1k4 Huy hiệu vàng33 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges33 silver badges51 bronze badges

Tôi hiểu rằng trong Python, các hằng số được biểu thị bằng tất cả các mũ (nhưng chỉ là các biến với một quy ước đặt tên nhất định). Nếu tôi xác định một "hằng số" ở đầu tập lệnh của mình, tôi biết rằng tôi có thể sử dụng nó trong các chức năng mà không cần truyền nó dưới dạng tham số. Đây có phải là thực hành tốt nhất không? Hoặc tôi nên chuyển nó dưới dạng tham số cho chính của tôi (), sau đó là một tham số cho bất kỳ chức năng nào trong đó sử dụng nó? Tôi biết rằng một giải pháp thay thế là xác định các hằng số trong một tệp khác và nhập chúng, sau đó chỉ cần sử dụng chúng một cách tự do mà không chuyển chúng dưới dạng thông số, đây có phải là cách tiếp cận đúng (ngay cả khi tôi chỉ có một hằng số duy nhất)?

Tôi đánh giá cao bất kỳ cái nhìn sâu sắc!

Biến Python

Một biến là một vị trí được đặt tên được sử dụng để lưu trữ dữ liệu trong bộ nhớ. Thật hữu ích khi nghĩ về các biến như một container chứa dữ liệu có thể thay đổi sau này trong chương trình. Ví dụ,

number = 10

Ở đây, chúng tôi đã tạo ra một biến có tên là số. Chúng tôi đã gán giá trị 10 cho biến.

Bạn có thể nghĩ về các biến như một túi để lưu trữ sách trong đó và cuốn sách đó có thể được thay thế bất cứ lúc nào.

number = 10
number = 1.1

Ban đầu, giá trị của số là 10. Sau đó, nó đã được thay đổi thành 1.1.

Lưu ý: Trong Python, chúng tôi không thực sự gán các giá trị cho các biến. Thay vào đó, Python đưa ra tham chiếu của đối tượng (giá trị) cho biến.: In Python, we don't actually assign values to the variables. Instead, Python gives the reference of the object(value) to the variable.


Gán các giá trị cho các biến trong Python

Như bạn có thể thấy từ ví dụ trên, bạn có thể sử dụng toán tử gán

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
9 để gán giá trị cho một biến.

Ví dụ 1: Khai thác và gán giá trị cho một biến

website = "apple.com"
print(website)

Đầu ra

apple.com

Trong chương trình trên, chúng tôi đã gán một giá trị Apple.com cho trang web biến. Sau đó, chúng tôi đã in ra giá trị được gán cho trang web, tức là & nbsp; apple.com

Lưu ý: Python là ngôn ngữ không có loại, vì vậy bạn không phải xác định rõ ràng loại biến. Nó tự động biết rằng Apple.com là một chuỗi và khai báo biến trang web dưới dạng chuỗi.: Python is a type-inferred language, so you don't have to explicitly define the variable type. It automatically knows that apple.com is a string and declares the website variable as a string.


Ví dụ 2: Thay đổi giá trị của một biến

website = "apple.com"
print(website)

# assigning a new value to website
website = "programiz.com"

print(website)

Đầu ra

apple.com
programiz.com

Trong chương trình trên, chúng tôi đã gán một giá trị Apple.com cho trang web biến. Sau đó, chúng tôi đã in ra giá trị được gán cho trang web, tức là & nbsp; apple.com


Lưu ý: Python là ngôn ngữ không có loại, vì vậy bạn không phải xác định rõ ràng loại biến. Nó tự động biết rằng Apple.com là một chuỗi và khai báo biến trang web dưới dạng chuỗi.

a, b, c = 5, 3.2, "Hello"

print (a)
print (b)
print (c)

Ví dụ 2: Thay đổi giá trị của một biến

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
0

Trong chương trình trên, chúng tôi đã chỉ định Apple.com & NBSP; cho biến trang web ban đầu. Sau đó, giá trị được thay đổi thành chương trình.com.


Ví dụ 3: Gán nhiều giá trị cho nhiều biến

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ư:

Chương trình thứ hai gán cùng một chuỗi cho cả ba biến x, y và z.


Hằng số

Hằng số là một loại biến có giá trị không thể thay đổi. Thật hữu ích khi nghĩ về các hằng số như các thùng chứa thông tin không thể thay đổi sau này.

Bạn có thể nghĩ về các hằng số như một chiếc túi để lưu trữ một số cuốn sách không thể thay thế một khi được đặt bên trong túi.

Gán giá trị cho hằng số trong pythonconstant.py:

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
1

Trong Python, hằng số thường được khai báo và gán trong một mô -đun. Ở đây, mô -đun là một tệp mới chứa các biến, hàm, vv được nhập vào tệp chính. Bên trong mô -đun, các hằng số được viết bằng tất cả các chữ in hoa và nhấn mạnh cách tách các từ.main.py:

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
2

Đầu ra

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
3

Trong chương trình trên, chúng tôi đã gán một giá trị Apple.com cho trang web biến. Sau đó, chúng tôi đã in ra giá trị được gán cho trang web, tức là & nbsp; apple.comconstant.py module file. Then, we assign the constant value to PI and GRAVITY. After that, we create a main.py file and import the

number = 10
0 module. Finally, we print the constant value.

Lưu ý: Python là ngôn ngữ không có loại, vì vậy bạn không phải xác định rõ ràng loại biến. Nó tự động biết rằng Apple.com là một chuỗi và khai báo biến trang web dưới dạng chuỗi.: In reality, we don't use constants in Python. Naming them in all capital letters is a convention to separate them from variables, however, it does not actually prevent reassignment.


Ví dụ 2: Thay đổi giá trị của một biến

  1. Trong chương trình trên, chúng tôi đã chỉ định Apple.com & NBSP; cho biến trang web ban đầu. Sau đó, giá trị được thay đổi thành chương trình.com.A to Z) or digits (0 to 9) or an underscore (_). For example:
    import constants
    
    def use_my_constants():
        print constants.GOOD, constants.BAD, constants.AWFUL
    
    4
  2. Ví dụ 3: Gán nhiều giá trị cho nhiều biến
  3. 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ư:
  4. Chương trình thứ hai gán cùng một chuỗi cho cả ba biến x, y và z.
  5. Hằng số
  6. Hằng số là một loại biến có giá trị không thể thay đổi. Thật hữu ích khi nghĩ về các hằng số như các thùng chứa thông tin không thể thay đổi sau này.

Bạn có thể nghĩ về các hằng số như một chiếc túi để lưu trữ một số cuốn sách không thể thay thế một khi được đặt bên trong túi.

Gán giá trị cho hằng số trong python

Trong Python, hằng số thường được khai báo và gán trong một mô -đun. Ở đây, mô -đun là một tệp mới chứa các biến, hàm, vv được nhập vào tệp chính. Bên trong mô -đun, các hằng số được viết bằng tất cả các chữ in hoa và nhấn mạnh cách tách các từ.

Ví dụ 3: Khai thác và gán giá trị cho một hằng số

Tạo một hằng.py:

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
7

Đầu ra

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
8

Trong chương trình trên, chúng tôi đã gán một giá trị Apple.com cho trang web biến. Sau đó, chúng tôi đã in ra giá trị được gán cho trang web, tức là & nbsp; apple.com

  • Lưu ý: Python là ngôn ngữ không có loại, vì vậy bạn không phải xác định rõ ràng loại biến. Nó tự động biết rằng Apple.com là một chuỗi và khai báo biến trang web dưới dạng chuỗi.
  • Ví dụ 2: Thay đổi giá trị của một biến
  • Trong chương trình trên, chúng tôi đã chỉ định Apple.com & NBSP; cho biến trang web ban đầu. Sau đó, giá trị được thay đổi thành chương trình.com.
  • Ví dụ 3: Gán nhiều giá trị cho nhiều biếnimaginary literal (x.imag) and real literal (x.real) to create imaginary and real parts of complex numbers.

Để tìm hiểu thêm về các chữ số, hãy tham khảo & nbsp; số python.


Chuỗi chữ

Một chuỗi theo nghĩa đen là một chuỗi các ký tự được bao quanh bởi các trích dẫn. Chúng ta có thể sử dụng cả trích dẫn đơn, gấp đôi hoặc ba cho một chuỗi. Và, một nhân vật theo nghĩa đen là một ký tự duy nhất được bao quanh bởi các trích dẫn đơn hoặc đôi.

Ví dụ 7: Làm thế nào để sử dụng chuỗi chữ trong Python?

import constants

def use_my_constants():
    print constants.GOOD, constants.BAD, constants.AWFUL
9

Đầu ra

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
0

Trong chương trình trên, đây là Python là một chuỗi theo nghĩa đen và C là một nhân vật theo nghĩa đen.

Giá trị trong ba quotes

number = 10
4 được gán cho multiline_str là một chuỗi đa dòng.

Chuỗi u "\ u00dcnic \ u00f6de" là một chữ Unicode theo nghĩa đen hỗ trợ các ký tự khác ngoài tiếng Anh. Trong trường hợp này, \ U00DC đại diện cho

number = 10
5 và \ U00F6 đại diện cho
number = 10
6.

R "RAW \ N String" là một chuỗi thô theo nghĩa đen.


Boolean Biết chữ

Một chữ Boolean có thể có bất kỳ trong hai giá trị:

number = 10
7 hoặc
number = 10
8.

Ví dụ 8: Làm thế nào để sử dụng các chữ Boolean trong Python?

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
1

Đầu ra

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
2

Trong chương trình trên, đây là Python là một chuỗi theo nghĩa đen và C là một nhân vật theo nghĩa đen.

Giá trị trong ba quotes

number = 10
4 được gán cho multiline_str là một chuỗi đa dòng.


Chuỗi u "\ u00dcnic \ u00f6de" là một chữ Unicode theo nghĩa đen hỗ trợ các ký tự khác ngoài tiếng Anh. Trong trường hợp này, \ U00DC đại diện cho number = 10 5 và \ U00F6 đại diện cho number = 10 6.

R "RAW \ N String" là một chuỗi thô theo nghĩa đen.

Boolean Biết chữ

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
3

Đầu ra

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
4

Trong chương trình trên, đây là Python là một chuỗi theo nghĩa đen và C là một nhân vật theo nghĩa đen.


Giá trị trong ba quotes number = 10 4 được gán cho multiline_str là một chuỗi đa dòng.

Chuỗi u "\ u00dcnic \ u00f6de" là một chữ Unicode theo nghĩa đen hỗ trợ các ký tự khác ngoài tiếng Anh. Trong trường hợp này, \ U00DC đại diện cho

number = 10
5 và \ U00F6 đại diện cho
number = 10
6.

R "RAW \ N String" là một chuỗi thô theo nghĩa đen.

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
5

Đầu ra

class Foo(object):
   GOOD = 0
   BAD = 1
   WTF = -1

   def __init__(self...
6

Trong chương trình trên, đây là Python là một chuỗi theo nghĩa đen và C là một nhân vật theo nghĩa đen.

Giá trị trong ba quotes

number = 10
4 được gán cho multiline_str là một chuỗi đa dòng.

Làm thế nào để bạn xử lý các hằng số trong Python?

Làm thế nào để thực hiện các hằng số trong Python..
Sử dụng tất cả các chữ cái viết hoa trong tên: Đầu tiên và quan trọng nhất, bạn muốn các hằng số của bạn nổi bật so với các biến của bạn. ....
Không viết tắt tên quá mức: mục đích của một hằng số - thực sự là bất kỳ biến nào - sẽ được tham chiếu sau ..

Bạn giữ hằng số ở đâu trong Python?

Trong Python, hằng số thường được khai báo và gán trong một mô -đun.Ở đây, mô -đun là một tệp mới chứa các biến, hàm, vv được nhập vào tệp chính.Bên trong mô -đun, các hằng số được viết bằng tất cả các chữ in hoa và nhấn mạnh cách tách các từ.in a module. Here, the module is a new file containing variables, functions, etc which is imported to the main file. Inside the module, constants are written in all capital letters and underscores separating the words.

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

Hằng số toàn cầu.Hằng số toàn cầu là một giá trị theo nghĩa đen mà bạn gán một tên.Giống như một biến toàn cầu, bạn có thể truy cập giá trị của hằng số toàn cầu từ bất kỳ quy trình tập lệnh hoặ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ó.a literal value to which you assign a name. Like a global variable, you can access the value of the global constant from any script or 4GL procedure in the application. You set the value for the global constant when you declare it.

Điều nào sau đây nên được sử dụng để xác định hằng số trong Python?

Nhưng, chúng ta có thể xác định hằng số trong Python bằng cách sử dụng Touple, bởi vì một tuple là một danh sách không thể thay đổi.Python đề cập đến một giá trị không thể thay đổi là bất biến.Vì vậy, theo định nghĩa, một tuple là một danh sách bất biến.Touple, because a tuple is a list that cannot change. Python refers to a value that cannot change as immutable. So, by definition, a tuple is an immutable list.