Đâ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:
# 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
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:
- Làm theo cách bạn đang làm ngay bây giờ với một tệp hằng số
- 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
- 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:
7class Foo[object]: GOOD = 0 BAD = 1 WTF = -1 def __init__[self...
8class Foo[object]: GOOD = 0 BAD = 1 WTF = -1 def __init__[self...
Đã 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
0Trong 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
1Trong 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
3Trong 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
- 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:
4import constants def use_my_constants[]: print constants.GOOD, constants.BAD, constants.AWFUL
- 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 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
8Trong 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...
0Trong 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...
2Trong 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.
number = 10
number = 10
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...
4Trong 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.
number = 10
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...
6Trong 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.