Functions in Python, lambda, global

Kategori: Python , 03 Eylül 2019 , JanFranco


Python'da fonksiyon tanımlamak için def anahtar kelimesini kullanırız. Fonksiyonun tipi yoktur, bir değeri return etmek istediğimizde Python otomatik olarak veri tipini algılar. Bu nedenle kullanımı aşağıdaki gibidir:


def add(a, b, c):
	return a+b+c
Python'da fonksiyonları default parametreler ile oluşturabiliriz:


def register(name="unknown", num=000):
    print(name, num)


register()
register("Jan Franco")
register(num=12)
register("Jan Franco", 34)
>>
unknown 0
Jan Franco 0
unknown 12
Jan Franco 34
* sembolü ile parametreleri demet şeklinde oluşturabiliriz. Bu şekilde belirtmediğimiz halde istediğimiz kadar parametre gönderebiliriz. Bir örnek yapalım:


def add(*params):
    sum = 0
    print(params)
    for i in params:
        sum += i
    return sum


print(add(1, 2, 3, 4, 5, 6, 7))
print(add(1))
print(add(12, 13, 1))
>>
(1, 2, 3, 4, 5, 6, 7)
28
(1,)
1
(12, 13, 1)
26
Fonksiyonda tanımladığımız değişkenler lokal değişkenlerdir. Bir fonksiyonu çağırdığımızda lokal değişkenler bellekte oluşur, fonksiyonun işi bittiğinde bellekten silinirler. Ancak global anahtar kelimesi ile bu değişkenleri global yapabiliriz. Bir örnek yapalım:


def pointless():
    global d
    d = 3
    print(d)


pointless()
print(d)
>>
3
3
Eğer global d şeklinde bir komut vermeseydik, print(d) satırında hata alacaktık çünkü compiler bir d değişkenini göremiyordu.
Çok uzun ve karmaşık olmayan fonksiyonları lambda ile tanımlayabiliriz. Okunabilirlik ve sadelik açısından daha olumludur. Bir sayıyı iki ile çarpıp return eden basit bir fonksiyon yazalım:


def mult_with_two(x):
    return x * 2
Aynı fonksiyonu lambda ile tanımlayalım:


mult_with_two = lambda x: x * 2
print(mult_with_two(2))
>>
4


Sonraki Yazı: Modules, math, random, time
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın