ಫಂಕ್ಷನ್ ಆರ್ಗ್ಯುಮಂಟ್ಸ್ ಮತ್ತು ಪ್ಯಾರಾಮೀಟರ್ಗಳು
ಪೈಥಾನ್ ಫಂಕ್ಷನ್ಗಳಲ್ಲಿ, ಪ್ಯಾರಾಮೀಟರ್ (Parameter) ಎಂದರೆ ಫಂಕ್ಷನ್ ಡಿಫಿನೇಷನ್ನಲ್ಲಿರುವ ವೇರಿಯೇಬಲ್ ಹೆಸರು. ಆರ್ಗ್ಯುಮೆಂಟ್ (Argument) ಎಂದರೆ ಫಂಕ್ಷನ್ ಅನ್ನು ಕಾಲ್ ಮಾಡುವಾಗ ಆ ಪ್ಯಾರಾಮೀಟರ್ಗೆ ನೀಡಲಾಗುವ ನಿಜವಾದ ಮೌಲ್ಯ.
def greet(name): # 'name' ಒಂದು ಪ್ಯಾರಾಮೀಟರ್
print(f"ನಮಸ್ಕಾರ, {name}")
greet("ಗೋವರ್ಧನ್") # "ಗೋವರ್ಧನ್" ಒಂದು ಆರ್ಗ್ಯುಮೆಂಟ್
ಪೈಥಾನ್ನಲ್ಲಿ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ನೀಡಲು ಹಲವಾರು ವಿಧಾನಗಳಿವೆ.
1. ಪೊಸಿಷನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್ (Positional Arguments)
ಇವುಗಳನ್ನು ಫಂಕ್ಷನ್ ಕಾಲ್ನಲ್ಲಿ ಕ್ರಮಬದ್ಧವಾಗಿ (in order) ನೀಡಲಾಗುತ್ತದೆ. ಮೊದಲ ಆರ್ಗ್ಯುಮೆಂಟ್ ಮೊದಲ ಪ್ಯಾರಾಮೀಟರ್ಗೆ, ಎರಡನೆಯದು ಎರಡನೇ ಪ್ಯಾರಾಮೀಟರ್ಗೆ, ಹೀಗೆ ನಿಯೋಜನೆಯಾಗುತ್ತದೆ.
def describe_person(name, age):
print(f"{name} ಅವರಿಗೆ {age} ವರ್ಷ ವಯಸ್ಸು.")
describe_person("ರವಿಕಿರಣ", 30)
# Output: ರವಿಕಿರಣ ಅವರಿಗೆ 30 ವರ್ಷ ವಯಸ್ಸು.
"ರವಿಕಿರಣ" name ಗೆ ಮತ್ತು 30 age ಗೆ ಹೋಗುತ್ತದೆ. ಕ್ರಮ ಬದಲಿಸಿದರೆ, ಅರ್ಥವೂ ಬದಲಾಗುತ್ತದೆ.
2. ಕೀವರ್ಡ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್ (Keyword Arguments)
ಇಲ್ಲಿ, ನಾವು key=value ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸಿ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ನೀಡುತ್ತೇವೆ. ಇದರಿಂದ ಕ್ರಮ ಮುಖ್ಯವಾಗುವುದಿಲ್ಲ.
def describe_person(name, age):
print(f"{name} ಅವರಿಗೆ {age} ವರ್ಷ ವಯಸ್ಸು.")
describe_person(age=28, name="ನಿಶ್ಕಲಾ")
# Output: ನಿಶ್ಕಲಾ ಅವರಿಗೆ 28 ವರ್ಷ ವಯಸ್ಸು.
ಗಮನಿಸಿ: ಪೊಸಿಷನಲ್ ಮತ್ತು ಕೀವರ್ಡ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬಳಸುವಾಗ, ಪೊಸಿಷನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳು ಯಾವಾಗಲೂ ಮೊದಲು ಬರಬೇಕು.
3. ಡೀಫಾಲ್ಟ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್ (Default Arguments)
ಫಂಕ್ಷನ್ ಡಿಫೈನ್ ಮಾಡುವಾಗ, ಪ್ಯಾರಾಮೀಟರ್ಗೆ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ನೀಡಬಹುದು. ಫಂಕ್ಷನ್ ಕಾಲ್ ಮಾಡುವಾಗ ಆ ಆರ್ಗ್ಯುಮೆಂಟ್ ಅನ್ನು ನೀಡದಿದ್ದರೆ, ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
def create_user(name, city="ಹಾಸನ"):
print(f"{name} ಅವರು {city} ನಗರದವರು.")
create_user("ಮಹಾಲಕ್ಷ್ಮಿ")
# Output: ಮಹಾಲಕ್ಷ್ಮಿ ಅವರು ಹಾಸನ ನಗರದವರು.
create_user("ಪಾರ್ವತಮ್ಮ", city="ಚನ್ನರಾಯಪಟ್ಟಣ")
# Output: ಪಾರ್ವತಮ್ಮ ಅವರು ಚನ್ನರಾಯಪಟ್ಟಣ ನಗರದವರು.
4. ಆರ್ಬಿಟ್ರರಿ ಪೊಸಿಷನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್ (*args)
ಒಂದು ಫಂಕ್ಷನ್ಗೆ ಎಷ್ಟು ಪೊಸಿಷನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳು ಬರುತ್ತವೆ ಎಂದು ತಿಳಿದಿಲ್ಲದಿದ್ದಾಗ, *args ಅನ್ನು ಬಳಸಬಹುದು. ಇದು ನೀಡಿದ ಎಲ್ಲಾ ಪೊಸಿಷನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಒಂದು ಟ್ಯೂಪಲ್ (tuple) ಆಗಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ.
def sum_all_numbers(*numbers):
print(f"Numbers to sum: {numbers}")
total = 0
for num in numbers:
total += num
return total
result = sum_all_numbers(1, 2, 3, 4, 5)
print(f"ಮೊತ್ತ: {result}") # Output: ಮೊತ್ತ: 15
5. ಆರ್ಬಿಟ್ರರಿ ಕೀವರ್ಡ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್ (**kwargs)
ಒಂದು ಫಂಕ್ಷನ್ಗೆ ಎಷ್ಟು ಕೀವರ್ಡ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳು ಬರುತ್ತವೆ ಎಂದು ತಿಳಿದಿಲ್ಲದಿದ್ದಾಗ, **kwargs ಅನ್ನು ಬಳಸಬಹುದು. ಇದು ನೀಡಿದ ಎಲ್ಲಾ ಕೀವರ್ಡ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಒಂದು ಡಿಕ್ಷನರಿ (dictionary) ಆಗಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ.
def display_person_details(**details):
print("ವ್ಯಕ್ತಿಯ ವಿವರಗಳು:")
for key, value in details.items():
print(f"- {key}: {value}")
display_person_details(name="ಗೋವರ್ಧನ್", age=45, city="ಚನ್ನರಾಯಪಟ್ಟಣ", profession="ವ್ಯವಸಾಯ")
ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳ ಕ್ರಮ
ಒಂದು ಫಂಕ್ಷನ್ನಲ್ಲಿ ಎಲ್ಲಾ ರೀತಿಯ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಬಳಸುವುದಾದರೆ, ಅವುಗಳನ್ನು ಈ ಕೆಳಗಿನ ಕ್ರಮದಲ್ಲಿ ಡಿಫೈನ್ ಮಾಡಬೇಕು:
1. ಪೊಸಿಷನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್
2. ಡೀಫಾಲ್ಟ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್
3. *args
4. **kwargs