9.1 Parametrlər və arqumentlər
Yeni başlayanlar tez-tez "parametrlər" və "arqumentlər" terminləri arasında qarışıqlıq yaşayırlar, amma bu fərqlilik funksional proqramlaşdırmanı başa düşmək üçün vacibdir.
Parametrlər — funksiyanın təyinində listlənən dəyişənlərdir. Onlar funksiya üçün daxil olan dəyərlərə istinad üçün istifadə olunan adlardır. Funksiya parametrləri funksiyanın daxilində istifadə olunacaq dəyərlər üçün bir növ "yer tutucu" kimi xidmət edir. Funksiyanı təyin edərkən, onun parametrlərini təsvir edirsiniz.
def print_info(name, age): # name və age — bunlar parametrlərdir
print(f"Name: {name}, Age: {age}")
Arqumentlər — bu, funksiyaya çağırılan zaman ötürülən konkret dəyərlər və ya məlumatlardır. Arqumentlər funksiyanın icrası zamanı parametrlərin yerinə əvəzlənir. Arqumentlər sabitlər, dəyişənlər, ifadələr və ya digər funksiyaların nəticələri ola bilər.
print_info("Alice", 30) # "Alice" və 30 — bunlar arqumentlərdir
Arqumentlərin növləri
- Pozisional arqumentlər: dəyərlər, parametrlər təyin edilmiş sıralamada ötürülür.
- Açar söz arqumentləri: arqumentlər, parametrin adı istifadə edilərək ötürülür, bu isə onların pozisional arqumentlərdən sonra istənilən sırada listlənməsinə imkan yaradır.
- Susmaya görə arqumentlər: funksiyanı təyin edərkən parametrlərə ilkin dəyərlər təyin edilə bilər.
Pozisional arqumentlərdən artıq istifadə edirsiniz, açar söz arqumentləri və susmaya görə arqumentləri isə növbəti mühazirələrdə müzakirə edəcəyik.
Python-da parametrlər və arqumentlər arasındakı fərqlilik, funksiyaların necə məlumatları alıb işlədiyini anlamağa kömək edir. Bu fərq, çağırılma şəraitinə uyğun olaraq asanlıqla adaptasiya edilə bilən çevik funksiyalar yaratmaq üçün vacibdir, bu isə kodunuzu daha modullar və təkrar emala uyğun edir.
9.2 Susmaya görə dəyərlər
Python-da susmaya görə arqumentlər, funksiyaların bir və ya bir neçə parametr üçün əvvəlcədən müəyyən edilmiş dəyərləri göstərməsinə imkan tanıyan bir mexanizmdir. Bu imkan funksiyanın çağırılmasını daha rahat və çevik edir, çünki hər dəfə funksiyanı çağırarkən bütün arqumentlərin açıq şəkildə göstərilməsini tələb etmir.
Susmaya görə arqumentlərin təyin edilməsi
Susmaya görə arqumentlər, funksiyanın tərifində təyin olunur, burada parametr elan edilərkən bir dəyər göstərilir ki, bu dəyər istifadə olunacaq, əgər funksiya çağırılarkən arqument təqdim edilməzsə
:
def print_info(name, company='Unknown'):
print(f"Name: {name}, Company: {company}")
Bu nümunədə company
susmaya görə 'Unknown' dəyərinə malikdir.
- Funksiya çağırışlarının sadələşdirilməsi: Çox parametrləri olan funksiyalar yalnız ən vacib arqumentlər göstərilməklə çağırıla bilər.
- Çeviklik: Funksiyalar, kodu dəyişdirmədən müxtəlif istifadə ssenarilərinə uyğunlaşdırıla bilər.
- Kodun oxunaqlılığı: Susmaya görə dəyərlərin açıq şəkildə göstərilməsi kodu öz-özünə izah edən edir.
Vacib məqamlar
Dəyişməzlik: Arqumentlər üçün susmaya görə dəyərlər rəqəmlər, sətirlər və ya tuple kimi dəyişməz məlumat tipləri olmalıdır. Dəyişən tiplərin (məsələn, siyahılar və ya lüğətlər) istifadəsi, bu obyektlərdəki dəyişikliklərin funksiya çağırışları arasında saxlanılması səbəbindən arzuolunmaz yan təsirlərə səbəb ola bilər.
Arqumentlərin sırası: Susmaya görə arqumentlər olan parametrlər, funksiyanın təyinatında arqumenti olmayan parametrlərdən sonra gəlməlidir.
Başqa bir nümunə:
def create_user(username, is_admin=False):
if is_admin:
print(f"User {username} is an admin.")
else:
print(f"User {username} is a regular user.")
create_user("Alice") # is_admin == False
create_user("Bob", is_admin=True) # is_admin == True
create_user("Karl", True) # is_admin == True
Yuxarıda susmaya görə arqumentlə funksiyanın çağırılmasının 3 yolu verilmişdir: hər biri işləkdir.
9.3 Parametrlərin ada görə ötürülməsi
Funksiyalara parametrlərin ada görə ötürülməsi daha aydın göstərir ki, hansı dəyərlər hansı arqumentlərə ötürülür, bu da kodu daha oxunaqlı edir və arqumentlərin səhv sırada olması ilə bağlı səhvlərin ehtimalını azaldır.
Parametrin dəyərini ada görə ötürmək üçün funksiyanı çağırarkən müəyyən parametrə dəyər vermək lazımdır:
funksiya(parametr1 = dəyər, parametr2 = dəyər)
Bu üsul xüsusən də çox sayda parametrə və ya quraşdırılmış standart dəyərlərə malik funksiyalar ilə işləyərkən faydalıdır.
Parametrlərin ada görə ötürülməsinin üstünlükləri
- Aydınlıq və oxunaqlılıq: Parametrin adını göstərmək onu çağırarkən kodu digər tərtibatçılar üçün və ya öz köhnə kodunuza qayıdanda daha başa düşülən edir.
- Elastiklik: Parametrlər istənilən sırada ötürülə bilər, bu isə funksiyada çox parametr olduğu zaman rahatdır.
- Səhvlərin qarşısını alma: Funksiyanın parametrlərinin sırasını yadda saxlamağa ehtiyac yoxdur, bu da səhv dəyərlər ötürmə ilə bağlı problemlərin ehtimalını azaldır.
İstifadə nümunələri
def create_profile(name, age, job):
print(f"Name: {name}")
print(f"Age: {age}")
print(f"Job: {job}")
create_profile(name = "John", age = 28, job = "Developer")
Bu nümunədə parametrlər sıraya görə deyil, amma hər birinə aydın şəkildə dəyər verilir, bu da funksiyaları daha elastik və başa düşülən edir.
Misal 2:
Yeri gəlmişkən, siz artıq daha əvvəl də parametrlərin ada görə ötürülməsi ilə qarşılaşmısınız. Funksiyada print()
, yadınızdadır?
Xüsusiyyətlər və məhdudiyyətlər
Ada görə ötürülən parametrlər adsız parametrlərdən sonra yer almalıdır, əgər funksiyanın tərifində belə parametrlər varsa.
Funksiyanı çağırarkən eyni parametr adını bir dəfədən artıq istifadə etmək olmaz.
Parametrlərin ada görə ötürülməsi Python-un güclü imkanlarındandır, bu isə xüsusən də çoxlu arqumentlərə və ya seçimli dəyərlərə malik funksiyalar ilə işləyərkən kodu daha təhlükəsiz və başa düşülən edir.
GO TO FULL VERSION