Python kalıtım nasıl yapılır?

benimişte v2

Hectopat
Katılım
29 Mayıs 2020
Mesajlar
1.868
Çözümler
3
Yer
Pythonya
[CODE title="Kod"]
class İnsan():
pass


def __init__(self, yas, ad, okul):
self.yas = yas
self.ad = ad
self.okul = okul

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV")
print(insan.binarykod()) # Burası formattan!


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, not_ort, ogr_numara):
super().__init__(yas, ad, okul)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
return "Özel öğrenci kodu : {}".format(round(ogrenci_kod1))


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, maas, g_sınıf):
super().__init__(yas, ad, okul)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)


ogretmen1 = Ogretmen(13 , "Bilinmez","Bilinmez", 2500 , 8)
print(Ogrenci.ogrenci_kod(1))

[/CODE]

Arkadaşlar bu aralar bir yandan Python bir yandan C# öğreniyorum ama Python'da bir süredir çözemediğim bir şey var. Class'ları super Class'a bağlamak. Nasıl yapılıyor hiç anlamadım kodu bırakıyorum şimdi yapmaya çalıştığım şey super Class'ta olan yaş, ad gibi özelliklerin aynısını class olan "ogrenci"de de aktif kılmak ayrıca bu classa ek olarak sadece onda geçerli olacak özellik eklemek örneğin "ögrenci numarası" gibi.
Ve de burada son kodda paranteze sayı yazmassam self kısmı boş bırakılamaz diyor ama eğer sayı girersem o zaman da:
[CODE title="Hata"]Traceback (most recent call last):
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 51, in <module>
print(Ogrenci.ogrenci_kod(1))
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 35, in ogrenci_kod
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
AttributeError: 'int' object has no attribute 'ad'[/CODE]
Arkadaşlar çözüm gelmedi ama ben 1-2 sattir uğraşıyorum çözdüm biraz da geliştirdim.
Çözüm : Orada print fonksiyonuna yanlış yazmışım son satırda önce öğrenci tanıtmanız lazım sonra print(ogrenci1.ogrenikod()) olacak bu şekilde oluyor isteyen olursa diye kodun son halini bırakıyorum.
[CODE lang="python" title="Kod" highlight="76,77-78"]class İnsan():


def __init__(self, yas, ad, okul, egitim):
self.yas = yas
self.ad = ad
self.okul = okul
self.egitim = egitim

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV", "Lise")
print(insan.binarykod())


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, egitim, not_ort, ogr_numara):
super().__init__(yas, ad, okul, egitim)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (((self.not_ort * 18) * (self.ogr_numara ** self.yas)) / (self.yas ** len(self.egitim))) * 0.00013
return "Özel öğrenci kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(round(ogrenci_kod1))

def __repr__(self):
return "Ögrenci oluşturuldu"


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, egitim, maas, g_sınıf):
super().__init__(yas, ad, okul, egitim)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)

def __repr__(self):
return "Öğretmen oluştu"

def ogretmen_kod(self):
ogretmen_kod1 = (((self.yas * 423) / len(self.okul)) * self.maas) * 1.3513
return "Özel öğretmen kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(
round(ogretmen_kod1))

def denetle(self):
if self.egitim == "Ortaokul" and self.g_sınıf <= 8:
print("İşlem başarılı!")
pass
elif self.egitim == "Lise" and self.g_sınıf <= 12:
print("İşlem başarılı!")
pass
else:
print("Sınıf hatalı")
exit()



ogretmen1 = Ogretmen(39, "woxzy", "MASA","Ortaokul" ,2500, 8)
ogrenci1 = Ogrenci(13, "Muhammed", "NASA","Lise",100, 12)
print(ogrenci1.ogrenci_kod())
print(ogretmen1.ogretmen_kod())
print(ogretmen1.denetle())[/CODE]
Arkadaşlar çözüm gelmedi ama ben 1-2 sattir uğraşıyorum çözdüm biraz da geliştirdim.
Çözüm : Orada print fonksiyonuna yanlış yazmışım son satırda önce öğrenci tanıtmanız lazım sonra print(ogrenci1.ogrenikod()) olacak bu şekilde oluyor isteyen olursa diye kodun son halini bırakıyorum.Konu kapatılabilir.
[CODE lang="python" title="Kod" highlight="76,77-78"]class İnsan():


def __init__(self, yas, ad, okul, egitim):
self.yas = yas
self.ad = ad
self.okul = okul
self.egitim = egitim

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV", "Lise")
print(insan.binarykod())


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, egitim, not_ort, ogr_numara):
super().__init__(yas, ad, okul, egitim)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (((self.not_ort * 18) * (self.ogr_numara ** self.yas)) / (self.yas ** len(self.egitim))) * 0.00013
return "Özel öğrenci kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(round(ogrenci_kod1))

def __repr__(self):
return "Ögrenci oluşturuldu"


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, egitim, maas, g_sınıf):
super().__init__(yas, ad, okul, egitim)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)

def __repr__(self):
return "Öğretmen oluştu"

def ogretmen_kod(self):
ogretmen_kod1 = (((self.yas * 423) / len(self.okul)) * self.maas) * 1.3513
return "Özel öğretmen kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(
round(ogretmen_kod1))

def denetle(self):
if self.egitim == "Ortaokul" and self.g_sınıf <= 8:
print("İşlem başarılı!")
pass
elif self.egitim == "Lise" and self.g_sınıf <= 12:
print("İşlem başarılı!")
pass
else:
print("Sınıf hatalı")
exit()



ogretmen1 = Ogretmen(39, "woxzy", "MASA","Ortaokul" ,2500, 8)
ogrenci1 = Ogrenci(13, "Muhammed", "NASA","Lise",100, 12)
print(ogrenci1.ogrenci_kod())
print(ogretmen1.ogretmen_kod())
print(ogretmen1.denetle())[/CODE]
[CODE title="Kod"]
class İnsan():
pass


def __init__(self, yas, ad, okul):
self.yas = yas
self.ad = ad
self.okul = okul

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV")
print(insan.binarykod()) # Burası formattan!


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, not_ort, ogr_numara):
super().__init__(yas, ad, okul)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
return "Özel öğrenci kodu : {}".format(round(ogrenci_kod1))


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, maas, g_sınıf):
super().__init__(yas, ad, okul)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)


ogretmen1 = Ogretmen(13 , "Bilinmez","Bilinmez", 2500 , 8)
print(Ogrenci.ogrenci_kod(1))

[/CODE]

Arkadaşlar bu aralar bir yandan Python bir yandan C# öğreniyorum ama Python'da bir süredir çözemediğim bir şey var. Class'ları super Class'a bağlamak. Nasıl yapılıyor hiç anlamadım kodu bırakıyorum şimdi yapmaya çalıştığım şey super Class'ta olan yaş, ad gibi özelliklerin aynısını class olan "ogrenci"de de aktif kılmak ayrıca bu classa ek olarak sadece onda geçerli olacak özellik eklemek örneğin "ögrenci numarası" gibi.
Ve de burada son kodda paranteze sayı yazmassam self kısmı boş bırakılamaz diyor ama eğer sayı girersem o zaman da:
[CODE title="Hata"]Traceback (most recent call last):
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 51, in <module>
print(Ogrenci.ogrenci_kod(1))
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 35, in ogrenci_kod
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
AttributeError: 'int' object has no attribute 'ad'[/CODE]
Arkadaşlar çözüm gelmedi ama ben 1-2 sattir uğraşıyorum çözdüm biraz da geliştirdim.
Çözüm : Orada print fonksiyonuna yanlış yazmışım son satırda önce öğrenci tanıtmanız lazım sonra print(ogrenci1.ogrenikod()) olacak bu şekilde oluyor isteyen olursa diye kodun son halini bırakıyorum.
[CODE lang="python" title="Kod" highlight="76,77-78"]class İnsan():


def __init__(self, yas, ad, okul, egitim):
self.yas = yas
self.ad = ad
self.okul = okul
self.egitim = egitim

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV", "Lise")
print(insan.binarykod())


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, egitim, not_ort, ogr_numara):
super().__init__(yas, ad, okul, egitim)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (((self.not_ort * 18) * (self.ogr_numara ** self.yas)) / (self.yas ** len(self.egitim))) * 0.00013
return "Özel öğrenci kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(round(ogrenci_kod1))

def __repr__(self):
return "Ögrenci oluşturuldu"


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, egitim, maas, g_sınıf):
super().__init__(yas, ad, okul, egitim)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)

def __repr__(self):
return "Öğretmen oluştu"

def ogretmen_kod(self):
ogretmen_kod1 = (((self.yas * 423) / len(self.okul)) * self.maas) * 1.3513
return "Özel öğretmen kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(
round(ogretmen_kod1))

def denetle(self):
if self.egitim == "Ortaokul" and self.g_sınıf <= 8:
print("İşlem başarılı!")
pass
elif self.egitim == "Lise" and self.g_sınıf <= 12:
print("İşlem başarılı!")
pass
else:
print("Sınıf hatalı")
exit()



ogretmen1 = Ogretmen(39, "woxzy", "MASA","Ortaokul" ,2500, 8)
ogrenci1 = Ogrenci(13, "Muhammed", "NASA","Lise",100, 12)
print(ogrenci1.ogrenci_kod())
print(ogretmen1.ogretmen_kod())
print(ogretmen1.denetle())[/CODE]
Konu kilitlenebilir.
[CODE title="Kod"]
class İnsan():
pass


def __init__(self, yas, ad, okul):
self.yas = yas
self.ad = ad
self.okul = okul

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV")
print(insan.binarykod()) # Burası formattan!


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, not_ort, ogr_numara):
super().__init__(yas, ad, okul)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
return "Özel öğrenci kodu : {}".format(round(ogrenci_kod1))


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, maas, g_sınıf):
super().__init__(yas, ad, okul)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)


ogretmen1 = Ogretmen(13 , "Bilinmez","Bilinmez", 2500 , 8)
print(Ogrenci.ogrenci_kod(1))

[/CODE]

Arkadaşlar bu aralar bir yandan Python bir yandan C# öğreniyorum ama Python'da bir süredir çözemediğim bir şey var. Class'ları super Class'a bağlamak. Nasıl yapılıyor hiç anlamadım kodu bırakıyorum şimdi yapmaya çalıştığım şey super Class'ta olan yaş, ad gibi özelliklerin aynısını class olan "ogrenci"de de aktif kılmak ayrıca bu classa ek olarak sadece onda geçerli olacak özellik eklemek örneğin "ögrenci numarası" gibi.
Ve de burada son kodda paranteze sayı yazmassam self kısmı boş bırakılamaz diyor ama eğer sayı girersem o zaman da:
[CODE title="Hata"]Traceback (most recent call last):
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 51, in <module>
print(Ogrenci.ogrenci_kod(1))
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 35, in ogrenci_kod
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
AttributeError: 'int' object has no attribute 'ad'[/CODE]
Arkadaşlar çözüm gelmedi ama ben 1-2 saattir uğraşıyorum çözdüm biraz da geliştirdim.
Çözüm : Orada "print"fonksiyonuna yanlış yazmışım son satırda önce öğrenci tanıtmanız lazım sonra "print(ogrenci1.ogrenikod())" olacak bu şekilde oluyor isteyen olursa diye kodun son halini bırakıyorum.
[CODE lang="python" title="Kod" highlight="76,77-78"]class İnsan():


def __init__(self, yas, ad, okul, egitim):
self.yas = yas
self.ad = ad
self.okul = okul
self.egitim = egitim

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV", "Lise")
print(insan.binarykod())


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, egitim, not_ort, ogr_numara):
super().__init__(yas, ad, okul, egitim)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (((self.not_ort * 18) * (self.ogr_numara ** self.yas)) / (self.yas ** len(self.egitim))) * 0.00013
return "Özel öğrenci kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(round(ogrenci_kod1))

def __repr__(self):
return "Ögrenci oluşturuldu"


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, egitim, maas, g_sınıf):
super().__init__(yas, ad, okul, egitim)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)

def __repr__(self):
return "Öğretmen oluştu"

def ogretmen_kod(self):
ogretmen_kod1 = (((self.yas * 423) / len(self.okul)) * self.maas) * 1.3513
return "Özel öğretmen kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(
round(ogretmen_kod1))

def denetle(self):
if self.egitim == "Ortaokul" and self.g_sınıf <= 8:
print("İşlem başarılı!")
pass
elif self.egitim == "Lise" and self.g_sınıf <= 12:
print("İşlem başarılı!")
pass
else:
print("Sınıf hatalı")
exit()



ogretmen1 = Ogretmen(39, "woxzy", "MASA","Ortaokul" ,2500, 8)
ogrenci1 = Ogrenci(13, "Muhammed", "NASA","Lise",100, 12)
print(ogrenci1.ogrenci_kod())
print(ogretmen1.ogretmen_kod())
print(ogretmen1.denetle())[/CODE]
Arkadaşlar çözüm gelmedi ama ben 1-2 saattir uğraşıyorum çözdüm biraz da geliştirdim.
Çözüm : Orada "print" fonksiyonunu yanlış yazmışım son satırda önce öğrenci tanıtmanız lazım sonra "print(ogrenci1.ogrenikod())" olacak bu şekilde oluyor isteyen olursa diye kodun son halini bırakıyorum. Konu kapatılabilir.
[CODE lang="python" title="Kod" highlight="76,77-78"]class İnsan():


def __init__(self, yas, ad, okul, egitim):
self.yas = yas
self.ad = ad
self.okul = okul
self.egitim = egitim

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV", "Lise")
print(insan.binarykod())


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, egitim, not_ort, ogr_numara):
super().__init__(yas, ad, okul, egitim)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (((self.not_ort * 18) * (self.ogr_numara ** self.yas)) / (self.yas ** len(self.egitim))) * 0.00013
return "Özel öğrenci kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(round(ogrenci_kod1))

def __repr__(self):
return "Ögrenci oluşturuldu"


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, egitim, maas, g_sınıf):
super().__init__(yas, ad, okul, egitim)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)

def __repr__(self):
return "Öğretmen oluştu"

def ogretmen_kod(self):
ogretmen_kod1 = (((self.yas * 423) / len(self.okul)) * self.maas) * 1.3513
return "Özel öğretmen kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(
round(ogretmen_kod1))

def denetle(self):
if self.egitim == "Ortaokul" and self.g_sınıf <= 8:
print("İşlem başarılı!")
pass
elif self.egitim == "Lise" and self.g_sınıf <= 12:
print("İşlem başarılı!")
pass
else:
print("Sınıf hatalı")
exit()



ogretmen1 = Ogretmen(39, "woxzy", "MASA","Ortaokul" ,2500, 8)
ogrenci1 = Ogrenci(13, "Muhammed", "NASA","Lise",100, 12)
print(ogrenci1.ogrenci_kod())
print(ogretmen1.ogretmen_kod())
print(ogretmen1.denetle())[/CODE]

Konu kilitlenebilir.
[CODE title="Kod"]
class İnsan():
pass


def __init__(self, yas, ad, okul):
self.yas = yas
self.ad = ad
self.okul = okul

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV")
print(insan.binarykod()) # Burası formattan!


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, not_ort, ogr_numara):
super().__init__(yas, ad, okul)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
return "Özel öğrenci kodu : {}".format(round(ogrenci_kod1))


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, maas, g_sınıf):
super().__init__(yas, ad, okul)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)


ogretmen1 = Ogretmen(13 , "Bilinmez","Bilinmez", 2500 , 8)
print(Ogrenci.ogrenci_kod(1))

[/CODE]

Arkadaşlar bu aralar bir yandan Python bir yandan C# öğreniyorum ama Python'da bir süredir çözemediğim bir şey var. Class'ları super Class'a bağlamak. Nasıl yapılıyor hiç anlamadım kodu bırakıyorum şimdi yapmaya çalıştığım şey super Class'ta olan yaş, ad gibi özelliklerin aynısını class olan "ogrenci"de de aktif kılmak ayrıca bu classa ek olarak sadece onda geçerli olacak özellik eklemek örneğin "ögrenci numarası" gibi.
Ve de burada son kodda paranteze sayı yazmassam self kısmı boş bırakılamaz diyor ama eğer sayı girersem o zaman da:
[CODE title="Hata"]Traceback (most recent call last):
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 51, in <module>
print(Ogrenci.ogrenci_kod(1))
File "C:\Users\PC\PycharmProjects\pythonders2\main.py", line 35, in ogrenci_kod
ogrenci_kod1 = (len(self.ad) * 3) ** ((self.ogr_numara + 1) / self.not_ort)
AttributeError: 'int' object has no attribute 'ad'[/CODE]
Arkadaşlar çözüm gelmedi ama ben 1-2 sattir uğraşıyorum çözdüm biraz da geliştirdim.
Çözüm : Orada print fonksiyonuna yanlış yazmışım son satırda önce öğrenci tanıtmanız lazım sonra print(ogrenci1.ogrenikod()) olacak bu şekilde oluyor isteyen olursa diye kodun son halini bırakıyorum.
[CODE lang="python" title="Kod" highlight="76,77-78"]class İnsan():


def __init__(self, yas, ad, okul, egitim):
self.yas = yas
self.ad = ad
self.okul = okul
self.egitim = egitim

def binarykod(self):
text = self.ad
total_binary = ""
for info in range(len(text)):
binary = ""
string_ord = ord(text[info:info + 1])
while string_ord > 0:
x = string_ord % 2
string_ord = string_ord // 2
binary = str(x) + str(binary)
total_binary += binary
print(total_binary)


insan = İnsan(13, "naruna", "IELEV", "Lise")
print(insan.binarykod())


class Ogrenci(İnsan):

def __init__(self, yas, ad, okul, egitim, not_ort, ogr_numara):
super().__init__(yas, ad, okul, egitim)
self.ogr_numara = ogr_numara
self.not_ort = not_ort

def ogrenci_kod(self):
ogrenci_kod1 = (((self.not_ort * 18) * (self.ogr_numara ** self.yas)) / (self.yas ** len(self.egitim))) * 0.00013
return "Özel öğrenci kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(round(ogrenci_kod1))

def __repr__(self):
return "Ögrenci oluşturuldu"


class Ogretmen(İnsan):
def __init__(self, yas, ad, okul, egitim, maas, g_sınıf):
super().__init__(yas, ad, okul, egitim)
self.maas = maas
self.g_sınıf = g_sınıf

def maas_arttır(self, arttır_miktar=100):
self.maas += arttır_miktar
return "Yeni maaş : {}".format(self.maas)

def __repr__(self):
return "Öğretmen oluştu"

def ogretmen_kod(self):
ogretmen_kod1 = (((self.yas * 423) / len(self.okul)) * self.maas) * 1.3513
return "Özel öğretmen kodu : #{}\nBu kod sizin özel ID'nizdir önemli kararlarda sorulur".format(
round(ogretmen_kod1))

def denetle(self):
if self.egitim == "Ortaokul" and self.g_sınıf <= 8:
print("İşlem başarılı!")
pass
elif self.egitim == "Lise" and self.g_sınıf <= 12:
print("İşlem başarılı!")
pass
else:
print("Sınıf hatalı")
exit()



ogretmen1 = Ogretmen(39, "woxzy", "MASA","Ortaokul" ,2500, 8)
ogrenci1 = Ogrenci(13, "Muhammed", "NASA","Lise",100, 12)
print(ogrenci1.ogrenci_kod())
print(ogretmen1.ogretmen_kod())
print(ogretmen1.denetle())[/CODE]


Konu kilitlenebilir.
Mesajlar buga girdi aynı mesaj 2 kere gitmiş.
 
Son düzenleme:

Yeni konular

Geri
Yukarı