python metod etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
python metod etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

20 Ocak 2022 Perşembe

Python metod ve fonksiyonları - Python Methods and Functions

Merhaba,

Sıklıkla karıştırılabilen bir konuya açıklık getirmek isterim. Python yazılım dilinde fonksiyon ve metod konseptleri farklı şeyleri ifade etmektedir. 

Metodlar sınıfların bir parçasıdır ve sınıf ile oluşturulan objenin durumunu değiştirebilir. Fonksiyonlar ise sınıflardan bağımsız tek başına çalışan ve çağrılabilen yapılardır. Bir objenin parçası değildirler.

Örnek ile açıklamak gerekirse.

class Toplam:
    def __init__(self, a, b):
        self.a = a
        self.b = b
    # Metod Ornegi
    def islem(self):
        return self.a + self.b

#Fonksiyon Ornegi
def topla(a, b):
    return a + b

Toplam sınıfı içinde tanımlı islem() bir metoddur. Sınıf dışında tanımlı topla() ise bir fonksiyondur.







Teşekkürler,

Cem Selmanoğulları

29 Eylül 2021 Çarşamba

Python Class ve Metodları

Merhaba,

Basit bir örnek ile Python Class ve Class Metodlarının nasıl oluşturulduğunu görelim.

Alttaki örneğimizde Car isimli bir class oluşturacağız. Bu class ın içinde __init__ ile tanımlanan metod bu class üzerinden oluşturulacak her obje örneğini tanımlanan özellikler ile başlatacaktır. Yani oluşturulan her Car objesi doornum, color, motor ve model özellikleri ile başlatılacaktır. Bu özellikleri self.değişken şeklinde __init__ içinde tanımlıyoruz. Bu özellikler oluşturulan her Car objesinde farklı verilebilir. Sınıf özelliği ise oluşturulan her objede aynı olacaktır. Bunu ise type değişkeni ile sınıf içinde tanımlıyoruz. 

class Car:
    type = "Personal"

    def __init__(self, doornum, color, motor, model):
        self.doornum = doornum
        self.color = color
        self.motor = motor
        self.model = model

Artık bir Car objesi oluşturabiliriz.

carx = Car(4,"white",1600,"Opel Astra")

Hatta oluşturulan carx objesinin özelliklerini ekrana bastırabiliriz.

print(carx.model)
print(carx.type)

Buraya kadar bir sınıfa özellik tanımlayarak obje oluşturmayı gördük. Peki bu objenin bazı aksiyonlar almasını istersen ne yapacağız ? Bu durumda metodlar devreye girer. Sınıf içinde tanımlanacak metodlar o sınıfa çeşitli aksiyon alma yeteneği katarlar. Alttaki şekilde ekleyebiliriz.

def printInfo(self):
    print(f"Model is : {self.model} , Color is : {self.color}")


def radio(self, action):
    '''
    Radio Open/Close Codes
    '''
    print(f"{self.model} > Radio {action}")
Yukarıdaki metodlardan birincisi Car üzerinden türetilen objenin bazı özelliklerini ekrana basar.

İkincisi ise aracın radyosunu açar yada kapatır. 

Tam bir örneklemeyle kodlarsak :

class Car:
    type = "Personal"

    def __init__(self, doornum, color, motor, model):
        self.doornum = doornum
        self.color = color
        self.motor = motor
        self.model = model

    def printInfo(self):
        print(f"Model is : {self.model} , Color is : {self.color}")

    def radio(self, action):
        '''
        Radio Open/Close Codes
        '''
        print(f"{self.model} > Radio {action}")

carx = Car(4,"white",1600,"Opel Astra")
print(carx.model)
print(carx.type)
carx.printInfo()
carx.radio("OPEN")
print()
carm = Car(2,"red",2000,"Renault Clio")
print(carm.model)
print(carm.type)
carm.printInfo()
carm.radio("CLOSE")

Kodu çalıştırdığımızda çıktımız alttaki şekilde olacaktır.







Teşekkürler,

Cem Selmanoğulları