Funksiyalar
Funksiya təyini, parametrlər, lokal dəyişənlər, return və docstring.
Bütün dərslər · Python dərsləri: sıfırdan öyrən
Funksiyanı təyin etmək
Funksiya adı olan kod parçasıdır; bir dəfə yazıb dəfələrlə çağırırsan. def ilə təyin olunur, mötərizədə parametrlər yazılır, nəticə return ilə qaytarılır. return olmasa funksiya None qaytarır.
def area(width, height):
return width * height
print(area(4, 5)) # 20
room = area(3.5, 2)
print(room) # 7.0Funksiyanın ilk sətri kimi mətn yazsan, bu docstring olur və help(area) ilə oxunur. Yaxşı funksiya bir iş görür və adı bu işi deyir.
def is_adult(age):
"""Return True if age is 18 or more."""
return age >= 18Parametrlər
Parametrə ilkin qiymət vermək olar; onda çağırışda onu yazmaq məcburi deyil. Arqumentləri sıra ilə və ya adla ötürə bilərsən.
def greet(name, greeting="Hello", mark="!"):
return f"{greeting}, {name}{mark}"
print(greet("Leyla"))
print(greet("Leyla", mark="?"))
print(greet(greeting="Salam", name="Kamran"))Sayı bilinməyən arqumentlər üçün *args (mövqeli) və **kwargs (adlı) var. Diqqət: ilkin qiymət kimi boş list [] yazma; o, çağırışlar arasında paylaşılır. Əvəzinə None yaz və funksiyanın içində yeni list yarat.
def total(*numbers):
return sum(numbers)
def add_tag(tag, bucket=None):
if bucket is None:
bucket = []
bucket.append(tag)
return bucket
print(total(1, 2, 3, 4)) # 10
print(add_tag("a"), add_tag("b")) # ['a'] ['b']Dəyişənin görünmə sahəsi
Funksiyanın içində yaradılan dəyişən lokaldır və kənarda görünmür. Kənardakı (qlobal) dəyişəni oxumaq olar, amma dəyişmək üçün global sözü lazımdır. Praktikada qlobal dəyişəndən qaçmaq və lazım olanı parametrlə ötürmək daha yaxşıdır.
rate = 0.18
def with_tax(price):
tax = price * rate # reads the global
return price + tax
print(with_tax(100))
# print(tax) -> NameError: tax exists only inside the function