CodeGym /Kurslar /Python SELF AZ /Funksiya parametrləri ilə inkişaf etmiş iş

Funksiya parametrləri ilə inkişaf etmiş iş

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

7.1 Funksiyanın bütün arqumentlərini əldə etmək

Python dilində funksiyanın daxilində ona ötürülən bütün parametrlərin siyahısını əldə etmək üçün bir neçə çox rahat üsul var. Gəlin bunları öyrənək.

*args istifadə edilməsi

*args funksiyaya dəyişən sayda mövqeli (adi) arqumentlər ötürməyə imkan verir. Bu arqumentlər tuple olaraq qablaşdırılır və funksiyanın daxilində emal edilə bilər.


def print_numbers(*args):
    for arg in args:
        print(arg)
        
print_numbers(1, 2, 3, 4, 5)

İzah

print_numbers funksiyası dəyişən sayda mövqeli arqumentləri qəbul edir, hansı ki args tuple-unda qablaşdırılmışdır. Biz dövr for ilə arqumentləri funksiyanın daxilində dövrə sala bilərik.

Üstünlüklər

  • Elastiklik: Funksiyaya istənilən sayda arqument ötürməyə imkan verir.
  • Ümumi yanaşma: Parametrlərin sayı qeyri-müəyyən olan funksiyalar üçün istifadə edilə bilər.

**kwargs istifadə edilməsi

**kwargs funksiyaya dəyişən sayda adlandırılmış arqumentləri ötürməyə imkan verir. Bu arqumentlər dictionary-də qablaşdırılır və funksiyanın daxilində emal edilə bilər.


def print_person_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
        
print_person_info(name="Alice", age=30, city="New York")

İzah

print_person_info funksiyası dəyişən sayda adlandırılmış arqumentləri qəbul edir, hansı ki kwargs dictionary-də qablaşdırılmışdır. Biz dictionary-nin items() metodu vasitəsilə arqumentləri dövrə sala bilərik.

Üstünlüklər

  • Elastiklik: Funksiyaya istənilən sayda adlandırılmış arqument ötürməyə imkan verir.
  • Oxunaqlılıq: Adlandırılmış arqumentlər funksiyanın çağırışlarını daha oxunaqlı edir.

7.2 Argumentlərin tipi üzərində məhdudiyyətlər

Yalnız mövqeli argumentlər

Python 3.8 və yuxarı versiyalarda mövqeli argumentlər ilə funksiyalar təyin etmək olar, hansı ki, yalnız mövqeyə görə verilə bilər. Bu, funksiyanın müəyyənləşdirilməsində / simvolundan istifadə etməklə edilir.


def greet(name, /, greeting="Salam"):
    print(f"{greeting}, {name}!")
        
greet("Aylin")  # Nəticə: Salam, Aylin!
greet("Aylin", greeting="Salam")  # Nəticə: Salam, Aylin!
# greet(name="Aylin")  # Xəta: TypeError

İzah

greet funksiyası bir name arqumentini qəbul edir, hansı ki, yalnız mövqeyə görə verilə bilər. Argumentlər / simvolundan əvvəl yalnız mövqedən verilə bilər.

Bu yanaşma argumentlərin veriliş üsulunu məhdudlaşdırmağa imkan verir, oxunaqlılığı artırır və xətaların qarşısını alır.

Yalnız adlandırılmış argumentlər (Keyword-Only Arguments)

Bundan başqa, yalnız ad ilə verilə bilən funksiya parametrləri də təyin etmək olar. Bu, funksiyanın müəyyənləşdirilməsində * simvolundan istifadə edərək edilir.


def greet(*, name, greeting="Salam"):
    print(f"{greeting}, {name}!")
        
greet(name="Aylin")  # Nəticə: Salam, Aylin!
greet(name="Aylin", greeting="Salam")  # Nəticə: Salam, Aylin!
# greet("Aylin")  # Xəta: TypeError

greet funksiyası bir name arqumentini qəbul edir, hansı ki, yalnız ad ilə verilə bilər. Argumentlər * simvolundan sonra yalnız ad ilə verilə bilər.

Bu yanaşma argumentlərin adlarını açıq şəkildə göstərməyə imkan verir və kodun oxunaqlılığını artırır.

Mövqeli və adlandırılmış argumentlərin kombinasiyası

Daha çox çeviklik əldə etmək üçün mövqeli və adlandırılmış argumentləri kombinə etmək olar.


def greet(name, /, *, greeting="Salam"):
    print(f"{greeting}, {name}!")
        
greet("Aylin")  # Nəticə: Salam, Aylin!
greet("Aylin", greeting="Salam")  # Nəticə: Salam, Aylin!
# greet(name="Aylin")  # Xəta: TypeError

greet funksiyası bir name arqumentini qəbul edir, hansı ki, yalnız mövqeyə görə verilə bilər, və adlandırılmış greeting arqumenti, hansı ki, mütləq ad ilə verilməlidir. /* istifadə edilməsi mövqeli və adlandırılmış argumentləri kombinə etməyə imkan verir.

Bütün üç vəziyyətin tam nümunəsi:


def full_example(a, b, /, c, d, *, e, f):
    print(f"a={a}, b={b}, c={c}, d={d}, e={e}, f={f}")
        
# Fərqli argumentlərlə funksiyanın çağırılması
full_example(1, 2, 3, 4, e=5, f=6)  # Bütün argumentlər düzgün verilib
# full_example(a=1, b=2, c=3, d=4, e=5, f=6)  # Xəta: TypeError

İzah

  • Yalnız mövqeli argumentlər: ab yalnız mövqedən verilə bilər.
  • Adet mövqeli və ya adlandırılmış argumentlər: cd həm mövqedən, həm də ad ilə verilə bilər.
  • Yalnız adlandırılmış argumentlər: ef yalnız ad ilə verilə bilər.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION