Python da self ne işe yarar?

Python'da "self", bir sınıfın tüm metotlarında kullanılan bir parametredir. Sınıfa ait özelliklere, methodlardan erişmek ve bu özellikleri diğer metotlara iletmek için kullanılır.


Python da self ne işe yarar?

Öncelikle, Python'un nesne yönelimli programlama (OOP) yapısına bir göz atalım. OOP, programlama sürecinde gerçek dünyadaki nesneleri modellemek için kullanılan bir paradigmadır. Bu paradigmada, bir programda kullanılacak nesneleri tanımlamak ve bu nesneler arasındaki ilişkileri belirlemek için sınıflar kullanılır. Bir sınıf, bir nesnenin türünü temsil ederken, bir örnek (instance) ise bu sınıfa ait bir nesneyi ifade eder.

Python'da bir sınıf oluşturduğumuzda, bu sınıfın değişkenleri ve metotları tanımlanır. Metotlar sınıf içinde tanımlanan işlevlerdir ve bu metotlar sınıfın örnekleri üzerinde çalışır. Bu işlevler, sınıfın içindeki değişkenlere (sınıfın özelliklerine) ve diğer metotlara erişmek için "self" parametresini kullanır.

Örneğin, bir "Araba" sınıfı oluşturalım:

```python class Araba: def __init__(self, marka, model): self.marka = marka self.model = model def bilgi_goster(self): print("Araba Markası:", self.marka) print("Araba Modeli:", self.model) ```

Bu örnekte, "Araba" sınıfı bir aracın markası ve modelini temsil eder. "__init__" adlı özel bir metot kullanarak bu marka ve model değerlerini başlatırız. "__init__" metodu, bir sınıf örneği oluşturulduğunda otomatik olarak çağrılır ve sınıfın ilgili değişkenlerini başlatır.

"bilgi_goster" metodu ise bir aracın markasını ve modelini ekrana yazdırır. Bu metot, sınıfın içindeki "marka" ve "model" değişkenlerine "self" parametresini kullanarak erişir.

Şimdi, bu sınıftan bir örnek oluşturalım:

```python oyuncak_araba = Araba("BMW", "X5") oyuncak_araba.bilgi_goster() ```

Çıktı:

``` Araba Markası: BMW Araba Modeli: X5 ```

Görüldüğü gibi, "bilgi_goster" metodu sınıfın örneklerine erişim yeteneğine sahiptir. Bu erişimi sağlamak için "self" parametresini kullanırız. "self" kelimesi, sınıfın örnekleri ile sınıfın içindeki değişkenler ve metotlar arasındaki ilişkiyi temsil eder.

Python'da "self" parametresi genellikle bu şekilde kullanılır. Bununla birlikte, "self" yerine başka bir kelime kullanılabilir, ancak yaygın olarak "self" terimi tercih edilir.

Python'da "self" kelimesi, sınıf ve örnekler arasındaki bağı sağlamak için çok önemlidir. Sınıf içindeki değişkenlere ve metotlara erişmek, bu referans aracılığıyla gerçekleştirilir. Dolayısıyla, "self" kelimesine ihtiyaç duymadan bir sınıfın örneklerine erişmek mümkün değildir.


Sıkça Sorulan Sorular

Python'da self ne işe yarar?

Python'da self, bir sınıfın bir örneğine referans oluşturur ve sınıfın özelliklerini ve yöntemlerini kullanmayı sağlar. İşte Python'da self ile ilgili sıkça sorulan 5 soru ve cevapları:

1. self parametresi nasıl kullanılır?

self parametresi, bir sınıf metodu içinde kullanılan ve sınıfın kendisini temsil eden bir referanstır. Bu parametre, sınıfın özelliklerine veya diğer yöntemlerine erişmek için kullanılır. Örneğin:

```python class Araba: def __init__(self, marka, model): self.marka = marka self.model = model def bilgileri_goster(self): print("Marka:", self.marka) print("Model:", self.model) araba1 = Araba("Toyota", "Corolla") araba1.bilgileri_goster() ```

Çıktı:

Marka: Toyota

Model: Corolla

2. self.parametre_adi ile self.parametreAdi arasındaki fark nedir?

Python'da, sınıf yöntemlerinde parametre olarak self vermek için iki yaygın yöntem vardır: self.parametre_adi veya self.parametreAdi. İki şekilde de aynı sonuç alınır ve hangi yöntemi tercih edeceğiniz kişisel tercihlere bağlıdır. Genel olarak, PEP 8'e (Python kodlama standartları) uygun olarak, self.parametre_adi kullanmak önerilir.

3. self nedir ve neden kullanılır?

self, bir sınıfın bir örneğine referans oluşturur. Sınıfın özelliklerine ve yöntemlerine bu referans üzerinden erişilir. Her bir sınıf yöntemi, self parametresini kullanarak sınıfın özelliklerine erişebilir ve onları kullanabilir. Aynı sınıftan birden fazla örnek oluşturmak istediğinizde, her örnek kendi self referansını alır ve özelleştirilebilir.

4. Setter ve getter metotları self ile nasıl kullanılır?

Setter ve getter metotları, bir sınıf özelliğinin değerini atamak (setter) veya almak (getter) için kullanılır. Bu metotları kullanırken self kullanmamız gereklidir çünkü değeri atamak veya almak istediğimiz özelliğin hangi sınıfa ait olduğunu bilmemiz gerekmektedir. Örneğin:

```python class Ogrenci: def __init__(self): self.ad = "" def set_ad(self, ad): self.ad = ad def get_ad(self): return self.ad ogrenci1 = Ogrenci() ogrenci1.set_ad("Ahmet") print(ogrenci1.get_ad()) ```

Çıktı:

Ahmet

5. self kullanmadan sınıf metodu oluşturmak mümkün mü?

Evet, self kullanmadan sınıf metodu oluşturmak mümkündür. Özel bir geleneksel olarak adlandırılmış değişken olan cls ifadesini kullanabilirsiniz. cls, sınıfı temsil eder. Örneğin:

```python class Matematik: @classmethod def toplama(cls, sayi1, sayi2): return sayi1 + sayi2 print(Matematik.toplama(3, 5)) ```

Çıktı:

8

Diğer Ne İşe Yarar Yazıları