Python Function Arguments

பைத்தான் செயல்பாடு வாதங்கள்

வாதங்கள்

தகவல்களை வாதங்களாக செயல்பாடுகளுக்குள் அனுப்பலாம்.

வாதங்கள் செயல்பாடு பெயருக்குப் பிறகு, அடைப்புக்குறிக்குள் குறிப்பிடப்படுகின்றன. நீங்கள் விரும்பும் அளவுக்கு பல வாதங்களைச் சேர்க்கலாம், அவற்றை காற்புள்ளியால் பிரிக்கவும்.

பின்வரும் எடுத்துக்காட்டில் ஒரு வாதம் (fname) கொண்ட செயல்பாடு உள்ளது. செயல்பாடு அழைக்கப்படும்போது, நாம் ஒரு முதல் பெயரை அனுப்புகிறோம், இது முழு பெயரை அச்சிட செயல்பாட்டிற்குள் பயன்படுத்தப்படுகிறது:

எடுத்துக்காட்டு

ஒரு வாதம் கொண்ட செயல்பாடு:

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

பாராமீட்டர்கள் vs வாதங்கள்

பாராமீட்டர் மற்றும் வாதம் என்ற சொற்கள் ஒரே விஷயத்திற்குப் பயன்படுத்தப்படலாம்: செயல்பாட்டிற்குள் அனுப்பப்படும் தகவல்கள்.

ஒரு செயல்பாட்டின் கண்ணோட்டத்தில்:

எடுத்துக்காட்டு

def my_function(name): # name என்பது ஒரு பாராமீட்டர்
  print("Hello", name)

my_function("Emil") # "Emil" என்பது ஒரு வாதம்

📝 குறிப்பு:

பாராமீட்டர்கள் செயல்பாடு வரையறையில் குறிப்பிடப்படுகின்றன, வாதங்கள் செயல்பாடு அழைப்பில் பயன்படுத்தப்படுகின்றன.

வாதங்களின் எண்ணிக்கை

இயல்பாக, ஒரு செயல்பாடு சரியான எண்ணிக்கையிலான வாதங்களுடன் அழைக்கப்பட வேண்டும்.

உங்கள் செயல்பாடு 2 வாதங்களை எதிர்பார்த்தால், நீங்கள் அதை சரியாக 2 வாதங்களுடன் அழைக்க வேண்டும்.

எடுத்துக்காட்டு

இந்த செயல்பாடு 2 வாதங்களை எதிர்பார்க்கிறது, மேலும் 2 வாதங்களைப் பெறுகிறது:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")

நீங்கள் தவறான எண்ணிக்கையிலான வாதங்களுடன் செயல்பாட்டை அழைக்க முயற்சித்தால், பிழை கிடைக்கும்:

எடுத்துக்காட்டு

இந்த செயல்பாடு 2 வாதங்களை எதிர்பார்க்கிறது, ஆனால் 1 மட்டுமே பெறுகிறது:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil")

இயல்புநிலை பாராமீட்டர் மதிப்புகள்

நீங்கள் பாராமீட்டர்களுக்கு இயல்புநிலை மதிப்புகளை ஒதுக்கலாம். வாதம் இல்லாமல் செயல்பாடு அழைக்கப்பட்டால், அது இயல்புநிலை மதிப்பைப் பயன்படுத்துகிறது:

எடுத்துக்காட்டு

def my_function(name = "friend"):
  print("Hello", name)

my_function("Emil")
my_function("Tobias")
my_function()
my_function("Linus")

எடுத்துக்காட்டு

country பாராமீட்டருக்கான இயல்புநிலை மதிப்பு:

def my_function(country = "Norway"):
  print("I am from", country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

கீ வேர்டு வாதங்கள்

key = value தொடரியலுடன் வாதங்களை அனுப்பலாம்.

எடுத்துக்காட்டு

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function(animal = "dog", name = "Buddy")

கீ வேர்டு வாதங்களுடன், வாதங்களின் வரிசை முக்கியமல்ல.

எடுத்துக்காட்டு

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function(name = "Buddy", animal = "dog")

📝 குறிப்பு:

கீ வேர்டு வாதங்கள் என்ற சொற்றொடர் பைத்தான் ஆவணங்களில் பெரும்பாலும் kwargs என சுருக்கப்படுகிறது.

இட அடிப்படை வாதங்கள்

கீ வேர்டுகளைப் பயன்படுத்தாமல் வாதங்களுடன் ஒரு செயல்பாட்டை நீங்கள் அழைக்கும்போது, அவை இட அடிப்படை வாதங்கள் என்று அழைக்கப்படுகின்றன.

இட அடிப்படை வாதங்கள் சரியான வரிசையில் இருக்க வேண்டும்:

எடுத்துக்காட்டு

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function("dog", "Buddy")

இட அடிப்படை வாதங்களுடன் வரிசை முக்கியம்:

எடுத்துக்காட்டு

வரிசையை மாற்றுவது முடிவை மாற்றுகிறது:

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function("Buddy", "dog")

இட அடிப்படை மற்றும் கீ வேர்டு வாதங்களை கலத்தல்

ஒரு செயல்பாடு அழைப்பில் இட அடிப்படை மற்றும் கீ வேர்டு வாதங்களைக் கலக்கலாம்.

இருப்பினும், இட அடிப்படை வாதங்கள் கீ வேர்டு வாதங்களுக்கு முன்னதாக வர வேண்டும்:

எடுத்துக்காட்டு

def my_function(animal, name, age):
  print("I have a", age, "year old", animal, "named", name)

my_function("dog", name = "Buddy", age = 5)

⚠️ முக்கியமானது:

கீ வேர்டு வாதங்களுக்குப் பிறகு இட அடிப்படை வாதங்களைப் பயன்படுத்த முயற்சித்தால் பிழை கிடைக்கும். எப்போதும் முதலில் இட அடிப்படை வாதங்களை வைக்கவும்.

வெவ்வேறு தரவு வகைகளை அனுப்புதல்

எந்த தரவு வகையையும் ஒரு செயல்பாட்டிற்கு வாதமாக அனுப்பலாம் (சரம், எண், பட்டியல், அகராதி போன்றவை).

தரவு வகை செயல்பாட்டிற்குள் பாதுகாக்கப்படும்:

எடுத்துக்காட்டு

ஒரு பட்டியலை வாதமாக அனுப்புதல்:

def my_function(fruits):
  for fruit in fruits:
    print(fruit)

my_fruits = ["apple", "banana", "cherry"]
my_function(my_fruits)

எடுத்துக்காட்டு

ஒரு அகராதியை வாதமாக அனுப்புதல்:

def my_function(person):
  print("Name:", person["name"])
  print("Age:", person["age"])

my_person = {"name": "Emil", "age": 25}
my_function(my_person)

திரும்ப பெறும் மதிப்புகள்

செயல்பாடுகள் return அறிக்கையைப் பயன்படுத்தி மதிப்புகளைத் திரும்பப் பெறலாம்:

எடுத்துக்காட்டு

def my_function(x, y):
  return x + y

result = my_function(5, 3)
print(result)

வெவ்வேறு தரவு வகைகளைத் திரும்பப் பெறுதல்

செயல்பாடுகள் பட்டியல்கள், டூப்பிள்கள், அகராதிகள் மற்றும் பல உள்ளிட்ட எந்த தரவு வகையையும் திரும்பப் பெறலாம்.

எடுத்துக்காட்டு

ஒரு பட்டியலைத் திரும்பப் பெறும் செயல்பாடு:

def my_function():
  return ["apple", "banana", "cherry"]

fruits = my_function()
print(fruits[0])
print(fruits[1])
print(fruits[2])

எடுத்துக்காட்டு

ஒரு டூப்பிளைத் திரும்பப் பெறும் செயல்பாடு:

def my_function():
  return (10, 20)

x, y = my_function()
print("x:", x)
print("y:", y)

இட அடிப்படை மட்டுமே வாதங்கள்

ஒரு செயல்பாட்டில் இட அடிப்படை வாதங்கள் மட்டுமே இருக்கலாம் என்பதை நீங்கள் குறிப்பிடலாம்.

இட அடிப்படை மட்டுமே வாதங்களைக் குறிப்பிட, வாதங்களுக்குப் பிறகு , / சேர்க்கவும்:

எடுத்துக்காட்டு

def my_function(name, /):
  print("Hello", name)

my_function("Emil")

, / இல்லாமல், செயல்பாடு இட அடிப்படை வாதங்களை எதிர்பார்த்தாலும் கூட கீ வேர்டு வாதங்களைப் பயன்படுத்த உங்களுக்கு அனுமதி உள்ளது:

எடுத்துக்காட்டு

def my_function(name):
  print("Hello", name)

my_function(name = "Emil")

, / உடன், கீ வேர்டு வாதங்களைப் பயன்படுத்த முயற்சித்தால் பிழை கிடைக்கும்:

எடுத்துக்காட்டு

def my_function(name, /):
  print("Hello", name)

my_function(name = "Emil")

கீ வேர்டு மட்டுமே வாதங்கள்

ஒரு செயல்பாட்டில் கீ வேர்டு வாதங்கள் மட்டுமே இருக்கலாம் என்பதைக் குறிப்பிட, வாதங்களுக்கு முன் *, சேர்க்கவும்:

எடுத்துக்காட்டு

def my_function(*, name):
  print("Hello", name)

my_function(name = "Emil")

*, இல்லாமல், செயல்பாடு கீ வேர்டு வாதங்களை எதிர்பார்த்தாலும் கூட இட அடிப்படை வாதங்களைப் பயன்படுத்த உங்களுக்கு அனுமதி உள்ளது:

எடுத்துக்காட்டு

def my_function(name):
  print("Hello", name)

my_function("Emil")

*, உடன், இட அடிப்படை வாதங்களைப் பயன்படுத்த முயற்சித்தால் பிழை கிடைக்கும்:

எடுத்துக்காட்டு

def my_function(*, name):
  print("Hello", name)

my_function("Emil")

இட அடிப்படை மட்டுமே மற்றும் கீ வேர்டு மட்டுமே வாதங்களை இணைத்தல்

ஒரே செயல்பாட்டில் இரண்டு வகை வாதங்களையும் இணைக்கலாம்.

/ க்கு முன்னால் உள்ள வாதங்கள் இட அடிப்படை மட்டுமே, மற்றும் * க்குப் பிறகு உள்ள வாதங்கள் கீ வேர்டு மட்டுமே:

எடுத்துக்காட்டு

def my_function(a, b, /, *, c, d):
  return a + b + c + d

result = my_function(5, 10, c = 15, d = 20)
print(result)

🔍 விளக்கம்:

இந்த செயல்பாட்டில், a மற்றும் b இட அடிப்படை மட்டுமே (முன்னால் / உள்ளது), c மற்றும் d கீ வேர்டு மட்டுமே (பின்னால் * உள்ளது).

பயிற்சி

பின்வரும் செயல்பாட்டைக் கவனியுங்கள்:

def myfunc(n):
  print(n)

'Hello' என்பதை அச்சிடும் செயல்பாடு அழைப்பு எது?

myfunc(param = 'Hello')
✗ தவறு! இந்த செயல்பாட்டில் 'param' என்பது ஒரு பாராமீட்டர் அல்ல, இது 'n' ஆகும்
myfunc('Hello')
✓ சரி! இந்த செயல்பாடு ஒரு இட அடிப்படை வாதத்தை எதிர்பார்க்கிறது, அதாவது 'n' என்பது 'Hello' மதிப்பைப் பெறும்
myfunc()
✗ தவறு! இந்த செயல்பாடு ஒரு வாதத்தை எதிர்பார்க்கிறது, ஆனால் எந்த வாதமும் வழங்கப்படவில்லை