பைதான் செயல்பாடு வரையறைகளில் *ஆர்க்ஸ் மற்றும் **க்வார்க்களைப் புரிந்துகொள்வது

பைதான் செயல்பாடு வரையறைகளில் *ஆர்க்ஸ் மற்றும் **க்வார்க்களைப் புரிந்துகொள்வது
பைதான் செயல்பாடு வரையறைகளில் *ஆர்க்ஸ் மற்றும் **க்வார்க்களைப் புரிந்துகொள்வது

பைத்தானின் செயல்பாட்டு அளவுருக்களை ஆராய்தல்

பைத்தானில், *args மற்றும் **kwargs இன் பயன்பாட்டைப் புரிந்துகொள்வது நெகிழ்வான மற்றும் மாறும் செயல்பாடுகளை எழுதுவதற்கு முக்கியமானது. இந்த சிறப்பு தொடரியல் கூறுகள் டெவலப்பர்கள் ஒரு செயல்பாட்டிற்கு மாறுபட்ட எண்ணிக்கையிலான வாதங்களை அனுப்ப அனுமதிக்கின்றன, குறியீட்டை மீண்டும் பயன்படுத்தக்கூடியதாகவும் திறமையாகவும் ஆக்குகிறது.

இந்த கட்டுரையில், * (ஒற்றை நட்சத்திரம்) மற்றும் ** (இரட்டை நட்சத்திரம்) குறியீடுகள் செயல்பாட்டு அளவுருக்களில் பயன்படுத்தப்படும் போது என்ன அர்த்தம் என்பதை ஆராய்வோம். உங்கள் குறியீட்டில் பல்வேறு காட்சிகளைக் கையாள, *args மற்றும் **kwargs ஆகியவற்றை எவ்வாறு பயன்படுத்துவது என்பதற்கான நடைமுறை உதாரணங்களையும் பார்ப்போம்.

கட்டளை விளக்கம்
*args நிலை மதிப்புருக்களின் மாறி எண்ணிக்கையை ஏற்க ஒரு செயல்பாட்டை அனுமதிக்கிறது. வாதங்கள் ஒரு துப்பட்டாக நிறைவேற்றப்படுகின்றன.
**kwargs முக்கிய மதிப்புருக்களின் மாறி எண்ணிக்கையை ஏற்க ஒரு செயல்பாட்டை அனுமதிக்கிறது. வாதங்கள் ஒரு அகராதியாக அனுப்பப்படுகின்றன.
print() கன்சோல் அல்லது பிற நிலையான வெளியீட்டு சாதனத்திற்கு குறிப்பிட்ட செய்தியை வெளியிடுகிறது.
get() அகராதியிலிருந்து குறிப்பிட்ட விசையுடன் தொடர்புடைய மதிப்பை மீட்டெடுக்கிறது. விசை கிடைக்கவில்லை எனில் இயல்புநிலை மதிப்பை வழங்கும்.
join() குறிப்பிடப்பட்ட பிரிப்பானைக் கொண்டு, மீண்டும் இயக்கக்கூடிய (எ.கா., பட்டியல் அல்லது டூப்பிள்) உறுப்புகளை ஒரு சரமாக இணைக்கிறது.
f-string சுருள் பிரேஸ்களுக்குள் உள்ள வெளிப்பாடுகளை இயக்க நேரத்தில் மதிப்பீடு செய்ய அனுமதிக்கும் வடிவமைக்கப்பட்ட சரம்.

பைத்தானில் *ஆர்க்ஸ் மற்றும் **க்வார்க்ஸில் ஆழமாக மூழ்குங்கள்

வழங்கப்பட்ட ஸ்கிரிப்டுகள் எவ்வாறு பயன்படுத்த வேண்டும் என்பதை விளக்குகின்றன *args மற்றும் **kwargs பைதான் செயல்பாடு வரையறைகளில். முதல் ஸ்கிரிப்ட் ஒரு செயல்பாட்டை வரையறுக்கிறது foo இது இரண்டு தேவையான வாதங்களை எடுக்கும், x மற்றும் y, குறிப்பிடப்படும் கூடுதல் நிலை வாதங்களின் எண்ணிக்கையைத் தொடர்ந்து *args. அழைக்கும் போது foo கூடுதல் வாதங்களுடன், இவை டூப்பிள் ஆகப் பிடிக்கப்பட்டு அச்சிடப்படுகின்றன. இது செயல்பாடு மாறுபட்ட எண்ணிக்கையிலான வாதங்களை அழகாக கையாள அனுமதிக்கிறது. இரண்டாவது செயல்பாடு, bar, தேவையான இரண்டு வாதங்கள் மற்றும் எந்த எண்ணிக்கையிலான முக்கிய வாதங்களையும் ஏற்றுக்கொள்கிறது **kwargs. இந்த முக்கிய வார்த்தை வாதங்கள் அகராதியில் சேகரிக்கப்பட்டு, நெகிழ்வான பெயரிடப்பட்ட உள்ளீடுகளை செயலாக்க செயல்பாட்டை செயல்படுத்துகிறது.

இரண்டாவது எடுத்துக்காட்டு ஸ்கிரிப்ட் அறிமுகப்படுத்துகிறது example_function மற்றும் greet பயன்பாட்டை மேலும் விளக்குவதற்கான செயல்பாடுகள் *args மற்றும் **kwargs. தி example_function நிலை மற்றும் முக்கிய வாதங்களை அச்சிடுகிறது, அவற்றின் தொகுப்பை முறையே tuples மற்றும் அகராதிகளில் காண்பிக்கும். தி greet செயல்பாடு ஒரு நடைமுறை பயன்பாட்டு நிகழ்வை எடுத்துக்காட்டுகிறது **kwargs தனிப்பயனாக்கக்கூடிய வாழ்த்துச் செய்தி போன்ற விருப்ப முக்கிய வார்த்தை வாதங்களை அனுமதிக்கிறது. அந்நியப்படுத்துவதன் மூலம் get() அதன் மேல் kwargs அகராதி, வாழ்த்துச் சொல் வழங்கப்படாதபோது செயல்பாடு இயல்புநிலை மதிப்பை வழங்க முடியும், இது நிஜ உலகக் காட்சிகளில் இந்த கட்டமைப்புகளைப் பயன்படுத்துவதற்கான நெகிழ்வுத்தன்மையையும் சக்தியையும் நிரூபிக்கிறது.

பைதான் செயல்பாடுகளில் *args மற்றும் **kwargs ஐப் பயன்படுத்துதல்

மலைப்பாம்பு

def foo(x, y, *args):
    print("Required arguments:", x, y)
    print("Additional arguments:", args)

def bar(x, y, **kwargs):
    print("Required arguments:", x, y)
    print("Keyword arguments:", kwargs)

foo(1, 2, 3, 4, 5)
# Output:
# Required arguments: 1 2
# Additional arguments: (3, 4, 5)

bar(1, 2, a=3, b=4, c=5)
# Output:
# Required arguments: 1 2
# Keyword arguments: {'a': 3, 'b': 4, 'c': 5}

*args மற்றும் **kwargs ஆகியவற்றின் பயன்பாட்டைப் புரிந்துகொள்வது

மலைப்பாம்பு

def example_function(*args, **kwargs):
    print("Positional arguments:", args)
    print("Keyword arguments:", kwargs)

example_function(1, 2, 3, a="apple", b="banana")
# Output:
# Positional arguments: (1, 2, 3)
# Keyword arguments: {'a': 'apple', 'b': 'banana'}

def greet(name, *args, **kwargs):
    greeting = kwargs.get('greeting', 'Hello')
    print(f"{greeting}, {name}!")
    if args:
        print("Additional names:", ', '.join(args))

greet("Alice")
# Output: Hello, Alice!

greet("Alice", "Bob", "Charlie", greeting="Hi")
# Output:
# Hi, Alice!
# Additional names: Bob, Charlie

*args மற்றும் **kwargs இன் மேம்பட்ட பயன்பாடு

அடிப்படை எடுத்துக்காட்டுகளுக்கு அப்பால், *args மற்றும் **kwargs மேம்பட்ட பைதான் நிரலாக்கத்தில் நம்பமுடியாத சக்திவாய்ந்த கருவிகளாக இருக்கலாம். ஒரு மேம்பட்ட பயன்பாட்டு வழக்கு செயல்பாடு அலங்காரங்களில் உள்ளது. அலங்கரிப்பாளர்கள் அவற்றின் உண்மையான குறியீட்டை மாற்றாமல் செயல்பாடுகள் அல்லது முறைகளை மாற்ற அல்லது மேம்படுத்துவதற்கான ஒரு வழியாகும். பயன்படுத்தி *args மற்றும் **kwargs, அலங்கரிப்பாளர்கள் எந்த எண்ணிக்கையிலான வாதங்களுடனும் வேலை செய்ய எழுதலாம், அவை மிகவும் நெகிழ்வானதாகவும் மீண்டும் பயன்படுத்தக்கூடியதாகவும் இருக்கும். எடுத்துக்காட்டாக, ஒரு லாக்கிங் டெக்கரேட்டர் எந்தச் செயல்பாட்டையும் ஏற்றுக்கொண்டு, அதன் வாதங்கள் மற்றும் மதிப்பைத் திரும்பப் பெறலாம், பின்னர் அந்த வாதங்களைப் பயன்படுத்தி அசல் செயல்பாட்டிற்கு அனுப்பலாம். *args மற்றும் **kwargs. இது எந்த மாற்றமும் இல்லாமல் பல்வேறு கையொப்பங்களின் செயல்பாடுகளுடன் அலங்காரத்தை பயன்படுத்த அனுமதிக்கிறது.

மற்றொரு மேம்பட்ட பயன்பாடு வர்க்க முறைகள் மற்றும் பரம்பரை சூழலில் உள்ளது. பயன்படுத்தும் அடிப்படை வகுப்பு முறையை வரையறுக்கும் போது *args மற்றும் **kwargs, பெறப்பட்ட வகுப்புகள் இந்த முறையை மேலெழுதலாம் மற்றும் வெளிப்படையாக பட்டியலிடாமல் கூடுதல் வாதங்களை ஏற்கலாம். இது குறியீடு பராமரிப்பை எளிதாக்கலாம் மற்றும் நெகிழ்வுத்தன்மையை மேம்படுத்தலாம், ஏனெனில் அடிப்படை வகுப்பு அனைத்து சாத்தியமான வாதங்களையும் முன்கூட்டியே தெரிந்து கொள்ள வேண்டிய அவசியமில்லை. மேலும், *args மற்றும் **kwargs வாதங்களை பெற்றோர் வகுப்பு முறைகளுக்கு அனுப்புவதற்குப் பயன்படுத்தலாம், அடிப்படை வகுப்பின் முழு செயல்பாடும் அதன் நடத்தையை நீட்டிக்கும் போது அல்லது மாற்றியமைக்கும் போது தக்கவைக்கப்படுவதை உறுதி செய்கிறது.

*args மற்றும் **kwargs பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்

  1. எவை *args?
  2. அவை ஒரு செயல்பாட்டிற்கு மாறி எண் நிலை வாதங்களை அனுப்பப் பயன்படுகின்றன.
  3. எவை **kwargs?
  4. ஒரு செயல்பாட்டிற்கு மாறி பல முக்கிய வார்த்தை வாதங்களை அனுப்ப அவை உங்களை அனுமதிக்கின்றன.
  5. நான் பயன்படுத்தி கொள்ளலாமா *args மற்றும் **kwargs ஒன்றாக?
  6. ஆம், நிலை மற்றும் முக்கிய வாதங்களின் கலவையைக் கையாள, நீங்கள் இரண்டையும் ஒரே செயல்பாட்டில் பயன்படுத்தலாம்.
  7. கடந்து வந்த வாதங்களை எப்படி அணுகுவது *args?
  8. அவை செயல்பாட்டிற்குள் ஒரு டூபிளாக அணுகக்கூடியவை.
  9. கடந்து வந்த வாதங்களை எப்படி அணுகுவது **kwargs?
  10. அவை செயல்பாட்டிற்குள் ஒரு அகராதியாக அணுகக்கூடியவை.
  11. நான் ஏன் பயன்படுத்த வேண்டும் *args?
  12. ஒரு செயல்பாட்டின் நெகிழ்வுத்தன்மையை மேம்படுத்தி, எத்தனை நிலை வாதங்களையும் ஏற்றுக்கொள்ள அனுமதிக்கும்.
  13. நான் ஏன் பயன்படுத்த வேண்டும் **kwargs?
  14. எந்தவொரு முக்கிய வார்த்தை வாதங்களையும் ஏற்க, இது செயல்பாட்டை மேலும் பல்துறை ஆக்குகிறது.
  15. முடியும் *args மற்றும் **kwargs வித்தியாசமாக பெயரிடப்படுமா?
  16. ஆம், பெயர்கள் மரபுகள், ஆனால் நீங்கள் விரும்பும் எதையும் பெயரிடலாம்.
  17. பயன்படுத்துவதற்கான நடைமுறை உதாரணம் என்ன *args?
  18. பல மதிப்புகளை ஒரு செயல்பாட்டிற்கு அனுப்புவது, அவற்றைச் சுருக்கமாகக் கூறுகிறது.
  19. பயன்படுத்துவதற்கான நடைமுறை உதாரணம் என்ன **kwargs?
  20. முக்கிய வாதங்களிலிருந்து அகராதியை உருவாக்கும் செயல்பாட்டை உருவாக்குதல்.

* args மற்றும் **kwargs உடன் மடக்குதல்

புரிந்து கொண்டு பயன்படுத்துதல் *args மற்றும் **kwargs பைதான் செயல்பாடுகளில் உங்கள் நிரலாக்க திறன்களை கணிசமாக மேம்படுத்த முடியும். இந்த கருவிகள் செயல்பாட்டு வரையறைகளில் அதிக அளவு நெகிழ்வுத்தன்மையை வழங்குகின்றன, மேலும் ஆற்றல்மிக்க மற்றும் மீண்டும் பயன்படுத்தக்கூடிய குறியீட்டை எழுத அனுமதிக்கிறது. இந்தக் கருத்துகளை மாஸ்டர் செய்வதன் மூலம், உங்கள் செயல்பாடுகளில் பலதரப்பட்ட வாதங்களைக் கையாளலாம், உங்கள் குறியீட்டை மேலும் மாற்றியமைக்க மற்றும் பராமரிக்க எளிதாக்குகிறது.

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