Python'da Class Nasıl Kullanılır?

Eyyüp Ensar

Decapat
Katılım
4 Ocak 2021
Mesajlar
30
Daha fazla  
Cinsiyet
Erkek
Python:
class kullanıcı:
list=[]
def __init__(self, kullanicia):
self.kullanicia = kullanicia.

def kullanicikayit(self):
self.list.append(self.kullanicia)

def personelgörüntüle(self):
for kişi in self.list:
print(kişi)

kullanıcı1=kullanıcı('mehmet')

kullanıcı1.kullanicikayit()

kullanıcı1.personelgörüntüle()

print(list)

Ben niye listeyi dışarıdan çağıramıyorum?

Çıktı;
mehmet <class 'list'>
 
Son düzenleme:
Örnekle açıklayabilirmisiniz ? Pek anlamadım.
Ondan önce liste adını değiştirir misin? Sanırım liste isminin onun tipini vermesinden dolayı çağıramıyorsunuz. Ayrıca listeyi ya init fonksiyonu içinde ya da başlangıçta tanımlayın. Sınıf çalışırken önce init kısmı çalışacağı için tanımlanmamış olarak görecektir. Dediğim şeyin örneği de bu.
Python:
liste=["A","B"]
class Deneme:
    def __init__(self):
        self.listecagir=liste
nesne=Deneme()
nesne.listecagir
 
Son düzenleme:
Öncelikle Merhaba,

Söyleyeceğim ilk şey şu: Python içerisinde zaten bir şeyleri tanımlamak için kullanılan isimleri kendi değerleriniz için kullanmayın. Hem profesyonellik açısından hem de saçma hatalar almamak için. Yani list = [] şeklinde bir tanımla yapmak mantıklı değil. Bunun yerine lst = [] şeklinde tanımlayın.

İkincil olarak ingilizce karakterler kullanın. Aslında ingilizce değil de ASCII karakterlerini kullanmaya özen gösterin. Mümkünse ingilizce tanımlamalar kullanın. İlerde faydasını göreceksenizdir.

Gelelim sorununuza. Sorun print(list) dediğiniz de python içerisinde listeler için özel olarak ayrılmış list çağrılıyor. Bu da list class olarak dönüyor. Tam olarak anlatamamış olabilirim. Eğer list = [] yerine lst = [] yaparsanız ve print(list) yazarsanız çıktı değişmeyecektir.

Diğer yandan OOP'de dataya direkt isimle ulaşamazsanız. Bu OOP'nin özelliklerinden biridir. Class içinde tanımladığınız list değişkenine ulaşmak istiyorsanız kullanici.lst yazmanız gerekir. print(kullanici.lst) yazarsanız liste sorun olmadan dönecektir.

Diğer yandan OOP'yi öğrenmek istiyorsanız öncelikle OOP'nin ne olduğunu ne işe yaradığını öğrenmeniz gerekir. Ayrıca eğer hedefiniz direkt olarak Python öğrenmek değil OOP öğrenmek ise Python kullanmayın çünkü Python OOP'nin bazı özelliklerini/gerekliliklerini yerine getirmekte zorlanıyor. Örneğin dışarıdan veriye kolaylıkla erişilebiliyor ki normal de OOP'de bunun olmaması gerekir.

"""
class kullanici:
lst=[]
def __init__(self, kullanicia):
self.kullanicia = kullanicia

def kullanicikayit(self):
self.lst.append(self.kullanicia)

def personelgoruntule(self):
for kisi in self.lst:
print(kisi)

kullanici1=kullanici('mehmet')

kullanici1.kullanicikayit()

kullanici1.personelgoruntule()

print(list)
print(kullanici1.lst)
"""
Şeklinde yazmayı deneyin.
 

Geri
Yukarı