Esdeath.xyz
Megapat
Daha fazla
- Cinsiyet
- Erkek
1, 2, 3 ve 5. soruların cevaplarını verdim. 4. soruda numpy kütüphanesinin kullanımını istemiş. Benim de numpy kütüphanesi ile henüz bir tecrübem olmadığından yalnızca cevabını verdiğim soruları yaptım.
5. sorunun cevabının çok değişik olduğunu düşünmüyorum. Yalnızca daha açıklayıcı anlatılmış olabilir.
5. sorunun cevabını attığım ilk gönderide uzun bir yazı olarak gönderdim. Aynısını akademik bir üslup kullanarak yazmış gibi geldi bana.PDF dosyasını eklemeyi unutmuşum ekledim
5. sorunun cevabını attığım ilk gönderide uzun bir yazı olarak gönderdim. Aynısını akademik bir üslup kullanarak yazmış gibi geldi bana.
Yazdığım mesajdan daha rahat anlayacağını düşünüyorum eğer anlamazsan tekrardan daha açıklayıcı şekilde anlatabilirim.
4. soru tamamen listelerle ilgili istersen bunu yorumlayabilirim fakat bahsettiğim gibi numpy kütüphanesi hakkında bir tecrübem olmadığından ne kadar kodu sana yorumlasam da anlar mısın bilmiyorum.
İşte gerçek bir insan
A[]rif>< isminde özel karakter olduğundan bu kişi yürüyemez
HomoSapiens
sınıfı oluşturdum.ModernInsan
sınıfında kullandığımız gibi bir kalıtım yaparak kullanacaksak o bilinçle ebeveyn sınıfı yazılıyor.__init__()
methodu, yazılan sınıf en alttaki gibi çağrılıp belirlenen parametre verildiğinde ilk olarak çalışan method oluyor.(önemli olan init methodu sınıf oluşturulduğunda çalışan ilk method olduğu bilinci)self
” olmak zorunda değil, ama ilk parametre her zaman belirlenen “bir şey
” olmak zorunda. ilk parametre kullanılarak oluşturulan değişkenler diğer bir adı ile, sınıfta türetilen nesneler, diğer methodlar tarafından da erişilebilmesi adına belirlediğimiz parametre ile yazılarak değişken/alan(field) oluşturuluyor. Farkındaysan HomoSapiens
sınıfının __init__
methodunda yer alan isim parametresini, self kullanarak parametrenin taşıdığı ismin aynısını veriyorum. Burada farklılık olabilir elbette(örneğin self.ad = isim).
Ama kafa karışıklığını gidermek adına türetilen nesne ismi ile __init__
methoduna verilen parametre isimleri genelde aynı oluyor.ModernInsan
sınfında ise göreceksiniz ki HomoSapiens
sınıfını miras almış.ModernInsan
sınıfı içerisinde ulaşabiliyoruz.ModernInsan
sınıfının __init__
metoduda bir isim adında parametre alıyor.(yine sınıf içerisinde farklı methodlar içinde kullanacağımı düşündüğümden)
self anahtar kelimesi ile türetip bunu __init__
methodundaki isim parametresine atıyorum.super()
adıyla bilinen sınıf, Ebeveyn olarak kullandığımız sınıfın ta kendisi olmuş oluyor.HomoSapiens
sınıfının __init__
methoduna, ModernInsan
sınıfında oluşturulan __init__
metodunun isim adlı parametresinin aldığı arguman(girilen veri/değer) kullanılsın"O zaman şöyle anlatıyorum.
Önce kendim örnek bir kod yazayım onun üstünden sana "self, __init__(), super().__init__()" terimlerini anlatayım. Hem verdiğim örneklerden daha rahat anlayabilirsin. Yine uzun bir yazı olabilir.
[CODE lang="python" title="Kalıtım örneği (Parent-child)"]class HomoSapiens:
def __init__(self,isim):
self.isim = isim # "self.<rastgele_değişken_ismi> = parametre"
if self.yürüyebilen(): # dönen "durum" değişkeni True ise.
print(f"{self.isim} isminde özel karakter olduğundan bu kişi yürüyemez")
else: # dönen "durum" değişkeni False ise.
print("İşte gerçek bir insan")
def yürüyebilen(self): # yürüyebilen adında bir method yani fanksiyon oluşturdum.
durum = False # durum değişkeni oluşturdum ve False(bool) değerini atadım.
for i in "><£#$½{[]}\\": # tırnak içinde belirlenen karakterler içerisinde dolanan i değişkeni tanımlandı.
if i in self.isim: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda var ise.
durum = True # durum değişkeninin değerini True olarak değiştiriyorum.
else: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda yoksa.
durum # durum değişkenini aynen korusun yani False değeri hala kalmaya devam etsin.
return durum # üstteki işlemlere göre de durum değişkeninin değerini fonksiyon da döndürsün.
class ModernInsan(HomoSapiens): # HomoSapiens sınıfından miras alıyoruz.
def __init__(self, isim): #child sınıfımıza bir arguman verileceğinden bir parametre oluşturuyoruz.
self.konuşan_insan = isim # "self.<rastgele_değişken_ismi> = parametre"
super().__init__(isim) # super() sınıfı yani Oluşturduğumuz Miras aldığımız "HomoSapiens" sınıfının __init__() methodunu alıyoruz.
# böylece ModernInsan sınıfını kullanırken verdiğimiz parametreler arkada dönen ebeveyn sınıfta işlemlerin gerçekleşirmesini salamış oluyor.
ModernInsan("Arif")
ModernInsan("A[]rif><")[/CODE]
>>>İşte gerçek bir insan
>>>A[]rif>< isminde özel karakter olduğundan bu kişi yürüyemez
BuradaHomoSapiens
sınıfı oluşturdum.
ModernInsan
sınıfında kullandığımız gibi bir kalıtım yaparak kullanacaksak o bilinçle ebeveyn sınıfı yazılıyor.
Yazılan bu sınıfta__init__()
methodu, yazılan sınıf en alttaki gibi çağrılıp belirlenen parametre verildiğinde ilk olarak çalışan method oluyor.(önemli olan init methodu sınıf oluşturulduğunda çalışan ilk method olduğu bilinci)
İlk parametre “self
” olmak zorunda değil, ama ilk parametre her zaman belirlenen “bir şey
” olmak zorunda. İlk parametre kullanılarak oluşturulan değişkenler diğer bir adı ile, sınıfta türetilen nesneler, diğer methodlar tarafından da erişilebilmesi adına belirlediğimiz parametre ile yazılarak değişken/alan(field) oluşturuluyor. FarkındaysanHomoSapiens
sınıfının__init__
methodunda yer alan isim parametresini, self kullanarak parametrenin taşıdığı ismin aynısını veriyorum. Burada farklılık olabilir elbette(örneğin self.ad = isim).
ama kafa karışıklığını gidermek adına türetilen nesne ismi ile__init__
methoduna verilen parametre isimleri genelde aynı oluyor.
ModernInsan
sınfında ise göreceksiniz kiHomoSapiens
sınıfını miras almış.
Bu demek oluyor ki miras sınıfna ait olan kullanılmak üzere oluşturulmuş olan bütün methodlara.
ModernInsan
sınıfı içerisinde ulaşabiliyoruz.
Gördüğün üzereModernInsan
sınıfının__init__
metoduda bir isim adında parametre alıyor.
Aynı parametreyi(yine sınıf içerisinde farklı methodlar içinde kullanacağımı düşündüğümden)
self anahtar kelimesi ile türetip bunu__init__
methodundaki isim parametresine atıyorum.
Peki bu atanan değişkeni ebeveyn sınıfta nasıl kullanacağım?
Burada da şöyle bir olay gerçekleşiyor:
super()
adıyla bilinen sınıf, ebeveyn olarak kullandığımız sınıfın ta kendisi olmuş oluyor.
Yani ben diyorum ki burada "HomoSapiens
sınıfının__init__
methoduna,ModernInsan
sınıfında oluşturulan__init__
metodunun isim adlı parametresinin aldığı arguman(girilen veri/değer) kullanılsın"
Edit:
Burada oluşturduğum örnekte child sınıfa ayrıyeten yazılmış methodlar bulunmamakta bu da şunun göstergesi; üzerine fazladan özellik eklemeyeceğimiz sınıflarda miras almanın pek bir anlamı olmadığını söylüyor.
Fakat şöyle bir düzenleme yapıp child sınıfımıza yani modernınsan sınıfımıza özgü bir fonksiyon yani method oluşturalım:
[CODE lang="python" title="Kalıtım örneği (Parent-child) ~ Child eklenen method" highlight="24-25,30"]class HomoSapiens:
def __init__(self,isim):
self.isim = isim # "self.<rastgele_değişken_ismi> = parametre"
if self.yürüyebilen(): # dönen "durum" değişkeni True ise.
print(f"{self.isim} isminde özel karakter olduğundan bu kişi yürüyemez")
else: # dönen "durum" değişkeni False ise.
print("İşte gerçek bir insan")
def yürüyebilen(self): # yürüyebilen adında bir method yani fanksiyon oluşturdum.
durum = False # durum değişkeni oluşturdum ve False(bool) değerini atadım.
for i in "><£#$½{[]}\\": # tırnak içinde belirlenen karakterler içerisinde dolanan i değişkeni tanımlandı.
if i in self.isim: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda var ise.
durum = True # durum değişkeninin değerini True olarak değiştiriyorum.
else: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda yoksa.
durum # durum değişkenini aynen korusun yani False değeri hala kalmaya devam etsin.
return durum # üstteki işlemlere göre de durum değişkeninin değerini fonksiyon da döndürsün.
class ModernInsan(HomoSapiens): # HomoSapiens sınıfından miras alıyoruz.
def __init__(self, isim): #child sınıfımıza bir arguman verileceğinden bir parametre oluşturuyoruz.
self.konuşan_insan = isim # "self.<rastgele_değişken_ismi> = parametre"
super().__init__(isim) # super() sınıfı yani Oluşturduğumuz Miras aldığımız "HomoSapiens" sınıfının __init__() methodunu alıyoruz.
# böylece ModernInsan sınıfını kullanırken verdiğimiz parametreler arkada dönen ebeveyn sınıfta işlemlerin gerçekleşirmesini salamış oluyor.
def konuşabilen(self):
print(f"{self.konuşan_insan} konuşabilen modern bir insandır")
ModernInsan("Arif")
ModernInsan("A[]rif><")
ModernInsan("Arif").konuşabilen()[/CODE]
Benim kafa daha çok karıştı. Sorunun cevabını anlasam bana yeter. Çünkü hoca bize kodu verecek onun çıktısını ve ne olduğunu vesaire soracakmış. Kısa bir şekilde şu ifade şu işe yarıyor şeklinde açıklama daha güzel olurdu sanki. Daha 1. sınıfım ben daha çünkü. İlk defa görüyorum dersi çok bir şey anlamıyorum.
super()
-> Oluşturulan Ebeveyn sınıfın ta kendisisuper().__init__()
-> Ebeveyn sınıfının __init__() methodu.self
-> methodlar arası oluşturulan değişkenlere erişmek içinmethod
-> fonksiyonların sınıflardaki kullanımı__init__()
-> oluşturulan sınıf çağrıldığında çalışan ilk method.def method1(self,deger1,deger2)
-> Sınıf içinde oluşturulan methodun ilk parametresi her zaman selfHangi sınıfta olduğunuzun pek bir önemi yokDaha 1. sınıfım ben daha çünkü.