Object Oriented, Classes

Kategori: Python , 04 Eylül 2019 , JanFranco


Python object oriented bir dildir. Object oriented programlamanın temellerinden Java bölümünde bahsetmiştim. Bu yazımda tekrar object oriented konseptlerini açıklamayacağım, Python'da sınıf oluşturmayı, obje oluşturmayı göstereceğim. Python'da sınıf oluşturmak için class anahtar kelimesini kullanırız. Sınıfın constructor yani yapıcı methodunu oluşturmak için ise __init__() methodununu kullanırız. Basit bir örnek yapalım:


class Car:
    def __init__(self, model, color):
        self.model = model
        self.color = color


car1 = Car("Renault", "Red")
print(car1.model, car1.color)
Bu kodun çıktısında "Renault Red" yazmasını bekleriz. Burada Car adında bir sınıf oluşturduk. Constructor methoda model ve renk parametrelerini gönderdik. Buradaki self anahtar kelimesi Java'daki this anahtar kelimesidir. Daha sonra Car sınıfından bir obje ürettik ve model, renk özelliklerini print fonksiyonu ile konsola yazdırdık.
Başka bir örnek daha yapalım, Worker adında bir sınıf oluşturalım. Bu sefer sınıfta başka methodlar da tanımlayalım:


class Worker:
    def __init__(self, name, surname, salary, languages):
        self.name = name
        self.surname = surname
        self.salary = salary
        self.languages = languages

    def show_details(self):
        print("""
            Worker: {}, {}
            Salary: {}
            Languages: {}
        """.format(self.name, self.surname, self.salary, self.languages))

    def raise_salary(self, amount):
        print("Raising the salary...")
        self.salary += amount

    def add_language(self, newLang):
        self.languages.append(newLang)


worker1 = Worker("Jan", "Franco", 3500, ["C", "Java", "Python", "MATLAB", "VB.Net"])
worker1.show_details()
worker1.raise_salary(1000)
worker1.show_details()
worker1.add_language("C++")
worker1.show_details()
Bu kodun konsolda çıktısı:


            Worker: Jan, Franco
            Salary: 3500
            Languages: ['C', 'Java', 'Python', 'MATLAB', 'VB.Net']
        
Raising the salary...

            Worker: Jan, Franco
            Salary: 4500
            Languages: ['C', 'Java', 'Python', 'MATLAB', 'VB.Net']
        

            Worker: Jan, Franco
            Salary: 4500
            Languages: ['C', 'Java', 'Python', 'MATLAB', 'VB.Net', 'C++']


Sonraki Yazı: Object Oriented, Inheritance, super()
Yorumlar

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