Herkese merhaba. Bugünkü konumuz Python'da self ve bazı özel metotlar.
Genelde class tanımlarında gördüğümüz "self" aslında o classtan türetilen nesnedir. Yani nesne içindeki verilere erişmemizi ve değiştirmemizi sağlar.
Örneğin aşağıdaki programda Person classından nesneler türetilmiş ve kullanılmıştır:
Çıktı:
Örneğin aşağıdaki programda Person classından nesneler türetilmiş ve kullanılmıştır:
Python:
class Person:
def __init__(self, name, surname):
self.name = name
self.surname = surname
first_person = Person("Example", "Example")
second_person = Person("Example2", "Example2")
print(f"First Person: {first_person.name} {first_person.surname}\nSecond Person: {second_person.name} {second_person.surname}")
Kod:
First Person: Example Example
Second Person: Example2 Example2
Tabi yukarıdaki örnekte "__init__" kullandık. Bu metot constructor metottur. Yani nesne türetildiğinde çağırılan ilk metot budur. Yukarıdaki örnekte parametre olarak "name" ve "surname" verdilmiş, türetirken gerekli parametreleri belirlenmiş ve o nitelikte nesneler türetilmiştir.
"str" metodu çağırıldığında döndürülen değeri temsil eder. Yani "str" metodu, "__str__" metodunun döndürdüğü değeri döndürür.
Örneğin aşağıdaki programda Person classına "str" tanımlanmış ve gerekli bilgileri yazdırırken kolaylık sağlanmıştır:
Çıktı:
Örneğin aşağıdaki programda Person classına "str" tanımlanmış ve gerekli bilgileri yazdırırken kolaylık sağlanmıştır:
Python:
class Person:
def __init__(self, name, surname):
self.name = name
self.surname = surname
def __str__(self):
return f"{self.name} {self.surname}"
first_person = Person("Example", "Example")
second_person = Person("Example2", "Example2")
print(f"First Person:", first_person, "\nSecond Person:", second_person)
Kod:
First Person: Example Example
Second Person: Example2 Example2
"len" metodu çağırıldığında döndürülen metottur. Yani "len" metodu, "__len__" metodunun döndürdüğü değeri döndürür.
Aşağıdaki örnekte "__len__" Person sınıfındaki isim ve soyadının birleştiğindeki uzunluğunu döndürmüştür:
Çıktı:
Aşağıdaki örnekte "__len__" Person sınıfındaki isim ve soyadının birleştiğindeki uzunluğunu döndürmüştür:
Python:
class Person:
def __init__(self, name, surname):
self.name = name
self.surname = surname
def __str__(self):
return f"{self.name} {self.surname}"
def __len__(self):
return len(str(self))
first_person = Person("Example", "Example")
second_person = Person("Example2", "Example2")
print(f"First Person:", first_person, "/ Lenght=", len(first_person), "\nSecond Person:", second_person, "/ Lenght=", len(second_person))
Kod:
First Person: Example Example / Lenght= 15
Second Person:Example2 Example2 / Lenght= 17
"=="in davranışını belirleyen metottur. Yani eşitliklerdeki şartı belirler. Aşağıdaki örnekte iki tarafın isim ve soyadlarının aynı olup olmadığı kontrol edilmiştir:
Çıktı:
Python:
class Person:
def __init__(self, name, surname):
self.name = name
self.surname = surname
def __str__(self):
return f"{self.name} {self.surname}"
def __len__(self):
return len(str(self))
def __eq__(self, right):
return self.name == right.name and self.surname == right.surname
first_person = Person("Example", "Example")
second_person = Person("Example2", "Example2")
print(first_person == second_person)
print(first_person == Person("Example", "Example"))
Kod:
False
True
Son düzenleyen: Moderatör: