BLP 4210 PLATFORM BAIMSIZ PROGRAMLAMA Dr Asl Ergn
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA Dr. Aslı Ergün 1 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Nesneler Sınıflar Metodlar class Account(object): pass #boş sınıf class Account(object): def transfer(self, target, amount): pass #boş metod def deposit(self, amount): pass def withdraw(self, amount): pass def balance(self): pass >>> from Account import Account >>> x = Account() >>> print x 2 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Sınıflar, Nesneler Özellikler : (Değişkenler) nesneyi oluşturan veri türleri Metodlar: (Fonksiyonlar) nesne Üzerinde işlem yapan fonksiyonlar Sınıflar: ürün taslağı Nesneler: Aynı malzemelerle farklı Tasarımlı ürünler… 3/9/2021 3 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Yapıcı metod(Constructor) def __init__(self, holder, number, balance, credit_line=1500): self. Holder = holder self. Number = number self. Balance = balance self. Credit. Line = credit_line 4 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
__init__ Fonksiyonu ve self • def __init__(self): • __init__() fonksiyonunu, init kelimesinin sağında ve solunda ikişer adet alt çizgi (_) olacak , • Fonksiyon, nesne oluşunca , yapıcı method gibi çalışır. class kisi(): def __init__(self): kisi. meslek= [] print(self. meslek) Ali=kisi() Ali. meslek="ogretmen" Print(Ali. meslek) 5 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Yıkıcı metod(destructor) class Greeting: def __init__(self, name): self. name = name def __del__(self): print "Destructor started" def Say. Hello(self): print "Hello", self. name >>> from hello_class import Greeting >>> x 1 = Greeting("Guido") >>> x 2 = x 1 >>> del x 2 Destructor started 6 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Encapsulation class Encapsulation(object): def __init__(self, a, b, c): self. public = a self. _protected = b self. __private = c >>> from encapsulation import Encapsulation >>> x = Encapsulation(11, 13, 17) >>> x. public 11 >>> x. _protected 13 >>> x. _protected = 23 >>> x. _protected 23 >>> x. __private Traceback (most recent call last): File "<stdin>", line 1, in <module> Attribute. Error: 'Encapsulation' object has no attribute '__private' >>> Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr 7
Name name __name Notation Public Protected Private Behaviour Can be accessed from inside and outside Like a public member, but they shouldn't be directly accessed from outside. Can't be seen and accessed from outside 3/9/2021 8 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Inheritance(Miras) class Account(object): counter = 0 def __init__(self, holder, number, balance, credit_line=1500): Accounter += 1 self. __Holder = holder self. __Number = number self. __Balance = balance self. __Credit. Line = credit_line def __del__(self): Accounter -= 1 Class Savings Account(Account): def __init__(self, Interestrate, booking): 3/9/2021 9 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Sınıf Kullanımı #Ogrenci bilgilerini tuttugumuz sinif class Ogrenci: #Yeni ogrenci yaratmak icin ilgili bilgilerini girmek gerekiyor #__init__ bu sinifin yapicisi oluyor def __init__(self, numara, isim, sinif, giris. Yili): #Basina __ ekleyince private degisken oluyor self. __isim = isim self. __numara = numara self. __sinif = sinif self. __giris. Yili = giris. Yili #Ogrenci bilgileri metin olarak donduren metod def to. String(self): return self. __numara+' '+self. __isim+' '+self. __sinif+' '+self. __giris. Yili if __name__ == '__main__': Mehmet = Ogrenci() Print(mehmet. numara) 10 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Kisiler. py class kisi(): personel = [] def __init__(self, isim): self. isim = isim self. hobileri = [] self. personele_ekle() def personele_ekle(self): self. personel. append(self. isim) print('{} adlı kişi personele eklendi'. format(self. isim)) def personeli_görüntüle(self): print('Personel listesi: ') for kişi in self. personel: print(kişi) def hobi_ekle(self, hobi): self. hobileri. append(hobi) def hobileri_görüntüle(self): print('{} adlı kişinin hobileri: '. format(self. isim)) for hobi in self. hobileri: print(hobi) 11 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Nesne Oluşturmak • import kisiler #sınıf, dosya adı ile dahil edilir • Gorevli 1 = kisiler. kisi('Ali') • Gorevli 1. isim='Ayse' 3/9/2021 12 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Örnek class Employee: # Common base class for all employees emp. Count = 0 def __init__(self, name, salary): self. name = name self. salary = salary Employee. emp. Count += 1 def display. Count(self): print "Total Employee %d" % Employee. emp. Count def display. Employee(self): print "Name : ", self. name, ", Salary: ", self. salary emp 1 = Employee("Zeynep", 2000) emp 2 = Employee("Mehmet", 5000) 13 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
Sınıf Değişkenleri >>> class Complex: . . . def __init__(self, realpart, imagpart): . . . self. r = realpart. . . self. i = imagpart. . . >>> x = Complex(3. 0, -4. 5) >>> x. r, x. i (3. 0, -4. 5) class Dog: kind = 'canine' by all instances # class variable shared def __init__(self, name): self. name = name # instance variable unique to each instance >>> d = Dog('Fido') >>> e = Dog('Buddy') >>> d. kind # shared by all dogs 'canine' >>> e. kind # shared by all dogs 'canine' >>> d. name # unique to d 'Fido' >>> e. name # unique to e 'Buddy' Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr 14
Miras class A(object): def __init__(self): print ('running A. __init__') class Animal(object): ''' Our animal object ''' def __init__(self, name, animal. Type): print "I am a ", animal. Type def make. Noise(self, noise): print noise def sleep(self): print "zzzz" def eat(self, food): print "Eating ", food class B(A): def __init__(self): print('running B. __init__') A. __init__(self) #super(B, self). __init__() class Tiger(Animal): def __init__(self, name): super(Tiger, self). __init__(name, Tiger) self. makenoise('roar') def stalk(self): print 'talking an antelope' self. eat('anthelope meat') 3/9/2021 15 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
class Person: def __init__(self, first, last): self. firstname = first self. lastname = last def Name(self): return self. firstname + " " + self. lastname class Employee(Person): def __init__(self, first, last, staffnum): Person. __init__(self, first, last) self. staffnumber = staffnum def Get. Employee(self): return self. Name() + ", " + self. staffnumber x = Person("Marge", "Simpson") y = Employee("Homer", "Simpson", "1007") print(x. Name()) print(y. Get. Employee()) 16 Dokuz Eylül Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi – DEUZEM – http: //deuzem. deu. edu. tr
- Slides: 16