assert ಸ್ಟೇಟ್ಮೆಂಟ್
ಪೈಥಾನ್ನಲ್ಲಿ, assert ಸ್ಟೇಟ್ಮೆಂಟ್ ಒಂದು ಕಂಡೀಷನ್ (ಷರತ್ತು) ಸತ್ಯವಾಗಿದೆಯೇ ಎಂದು ಪರೀಕ್ಷಿಸಲು ಬಳಸುವ ಒಂದು ಡೀಬಗ್ಗಿಂಗ್ ಸಾಧನವಾಗಿದೆ. ಆ ಕಂಡೀಷನ್ False ಆಗಿದ್ದರೆ, assert ಸ್ಟೇಟ್ಮೆಂಟ್ AssertionError ಅನ್ನು ಎಬ್ಬಿಸುತ್ತದೆ.
assert ಅನ್ನು ಪ್ರೋಗ್ರಾಮ್ನ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಪರೀಕ್ಷೆಯ ಹಂತದಲ್ಲಿ, ಕೋಡ್ನ ನಿರೀಕ್ಷೆಗಳು ಸರಿಯಾಗಿವೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಬಳಸಲಾಗುತ್ತದೆ.
assert ಸಿಂಟ್ಯಾಕ್ಸ್
- condition: True ಅಥವಾ False ಗೆ ಮೌಲ್ಯಮಾಪನವಾಗುವ ಒಂದು ಎಕ್ಸ್ಪ್ರೆಶನ್.
- "ಸಂದೇಶ": AssertionError ನೊಂದಿಗೆ ಪ್ರದರ್ಶಿಸಲಾಗುವ ಐಚ್ಛಿಕ (optional) ಸ್ಟ್ರಿಂಗ್.
assert ಅನ್ನು ಏಕೆ ಮತ್ತು ಯಾವಾಗ ಬಳಸಬೇಕು?
- ಡೀಬಗ್ಗಿಂಗ್: ಪ್ರೋಗ್ರಾಮ್ನ ಒಂದು ನಿರ್ದಿಷ್ಟ ಹಂತದಲ್ಲಿ ವೇರಿಯೇಬಲ್ಗಳು ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿವೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು.
- ಪೂರ್ವ-ಷರತ್ತುಗಳನ್ನು (Pre-conditions) ಪರೀಕ್ಷಿಸಲು: ಒಂದು ಫಂಕ್ಷನ್ನ ಪ್ರಾರಂಭದಲ್ಲಿ, ಅದಕ್ಕೆ ನೀಡಲಾದ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳು ಮಾನ್ಯವಾಗಿವೆಯೇ ಎಂದು ಪರೀಕ್ಷಿಸಲು.
- ನಂತರದ-ಷರತ್ತುಗಳನ್ನು (Post-conditions) ಪರೀಕ್ಷಿಸಲು: ಒಂದು ಫಂಕ್ಷನ್ನ ಕೊನೆಯಲ್ಲಿ, ಅದು ಹಿಂತಿರುಗಿಸುವ ಮೌಲ್ಯವು ನಿರೀಕ್ಷೆಯಂತೆಯೇ ಇದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು.
ಪ್ರಮುಖ ಸೂಚನೆ: assert ಅನ್ನು ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ವ್ಯಾಲಿಡೇಶನ್ ಅಥವಾ ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ನಲ್ಲಿ ಸಾಮಾನ್ಯ ದೋಷ ನಿರ್ವಹಣೆಗಾಗಿ ಬಳಸಬಾರದು. ಅದಕ್ಕಾಗಿ try...except ಬ್ಲಾಕ್ಗಳು ಸೂಕ್ತ. assert ಗಳನ್ನು -O (optimize) ಫ್ಲ್ಯಾಗ್ನೊಂದಿಗೆ ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಿದಾಗ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು.
ಉದಾಹರಣೆಗಳು
1. ಫಂಕ್ಷನ್ ಆರ್ಗ್ಯುಮೆಂಟ್ ಅನ್ನು ಪರೀಕ್ಷಿಸುವುದು
ವಿದ್ಯಾರ್ಥಿಯ ಅಂಕಗಳನ್ನು ಶೇಕಡಾವಾರು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಫಂಕ್ಷನ್ನಲ್ಲಿ, ಒಟ್ಟು ಅಂಕಗಳು ಶೂನ್ಯವಾಗಿರಬಾರದು ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳೋಣ.
def calculate_percentage(marks_obtained, total_marks):
# ಪೂರ್ವ-ಷರತ್ತು: ಒಟ್ಟು ಅಂಕಗಳು ಶೂನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿರಬೇಕು
assert total_marks > 0, "ಒಟ್ಟು ಅಂಕಗಳು ಶೂನ್ಯವಾಗಿರಬಾರದು."
return (marks_obtained / total_marks) * 100
# ಸರಿಯಾದ ಬಳಕೆ
percentage = calculate_percentage(80, 100)
print(f"ಶೇಕಡಾವಾರು: {percentage}%")
# ತಪ್ಪಾದ ಬಳಕೆ
try:
calculate_percentage(80, 0)
except AssertionError as e:
print(f"ದೋಷ: {e}")
2. ವೇರಿಯೇಬಲ್ನ ಸ್ಥಿತಿಯನ್ನು ಪರೀಕ್ಷಿಸುವುದು
ಒಂದು ಲಿಸ್ಟ್ ಖಾಲಿಯಾಗಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು assert ಬಳಸುವುದು.
def process_names(names):
assert len(names) > 0, "ಹೆಸರುಗಳ ಪಟ್ಟಿ ಖಾಲಿಯಾಗಿದೆ."
for name in names:
print(f"ಪ್ರೊಸೆಸಿಂಗ್: {name}")
names_list = ["ರವಿಕಿರಣ", "ನಿಶ್ಕಲಾ"]
process_names(names_list)
empty_list = []
try:
process_names(empty_list)
except AssertionError as e:
print(f"ದೋಷ: {e}")
assert vs. try...except
assert |
try...except |
|---|---|
| ಉದ್ದೇಶ: ಡೀಬಗ್ಗಿಂಗ್ ಮತ್ತು ಪರೀಕ್ಷೆ. | ಉದ್ದೇಶ: ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ನಲ್ಲಿ ದೋಷ ನಿರ್ವಹಣೆ. |
ನಡವಳಿಕೆ: ಕಂಡೀಷನ್ ವಿಫಲವಾದರೆ AssertionError ಎಬ್ಬಿಸುತ್ತದೆ. |
ನಡವಳಿಕೆ: ದೋಷಗಳನ್ನು ಹಿಡಿದು, ಪರ್ಯಾಯ ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸುತ್ತದೆ. |
ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಿಕೆ: -O ಫ್ಲ್ಯಾಗ್ನೊಂದಿಗೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು. |
ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಿಕೆ: ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. |
| ಬಳಕೆ: ಪ್ರೋಗ್ರಾಮರ್ನ ತಪ್ಪುಗಳನ್ನು (ಬಗ್ಗಳನ್ನು) ಹಿಡಿಯಲು. | ಬಳಕೆ: ಬಳಕೆದಾರರ ತಪ್ಪುಗಳು ಅಥವಾ ಬಾಹ್ಯ ದೋಷಗಳನ್ನು (ಉದಾ: ಫೈಲ್ ಸಿಗದಿರುವುದು) ನಿರ್ವಹಿಸಲು. |
ಸಾರಾಂಶದಲ್ಲಿ, assert ನಿಮ್ಮ ಕೋಡ್ನ ನಿರೀಕ್ಷೆಗಳನ್ನು ದಾಖಲಿಸಲು ಮತ್ತು ಅಭಿವೃದ್ಧಿಯ ಹಂತದಲ್ಲಿ ದೋಷಗಳನ್ನು ಬೇಗನೆ ಪತ್ತೆಹಚ್ಚಲು ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದೆ.