Programlama

Fonksiyonlar

Fonksiyon tanımı, parametreler, yerel değişkenler, return ve docstring.

Tüm dersler · Python dersleri: sıfırdan öğren

Fonksiyon tanımlamak

Fonksiyon, adı olan bir kod parçasıdır; bir kez yazar, defalarca çağırırsın. def ile tanımlanır, parametreler parantez içine yazılır, sonuç return ile döner. return yoksa fonksiyon None döndürür.

def area(width, height):
    return width * height

print(area(4, 5))        # 20
room = area(3.5, 2)
print(room)              # 7.0

Fonksiyonun ilk satırına metin yazarsan bu docstring olur ve help(area) ile okunur. İyi bir fonksiyon tek iş yapar ve adı bu işi söyler.

def is_adult(age):
    """Return True if age is 18 or more."""
    return age >= 18

Parametreler

Bir parametreye varsayılan değer verilebilir; o zaman çağrıda yazmak zorunlu değildir. Argümanları sırayla veya adıyla iletebilirsin.

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ısı belirsiz argümanlar için *args (konumsal) ve **kwargs (adlı) vardır. Dikkat: varsayılan değer olarak boş liste [] yazma; çağrılar arasında paylaşılır. Bunun yerine None yaz ve fonksiyon içinde yeni liste oluştur.

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']

Değişkenin görünürlük alanı

Fonksiyon içinde oluşturulan değişken yereldir ve dışarıdan görünmez. Dıştaki (global) değişken okunabilir, ama değiştirmek için global sözcüğü gerekir. Pratikte global değişkenden kaçınıp gerekeni parametreyle iletmek daha iyidir.

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

Yazar: Nibras Code