Python'da, özel değişkenler genellikle çift alt çizgi (__) ile başlar ve biter. Bu değişkenler, Python dilinin kendisi tarafından tanımlanmıştır ve belirli özel anlamlara sahiptirler. İşte bazı örnekler:
__name__: Bu özel değişken, Python tarafından otomatik olarak ayarlanır. Bir script doğrudan çalıştırıldığında, __name__ değişkeninin değeri "__main__" olur. Ancak, bir script başka bir scriptten bir modül olarak içe aktarıldığında, __name__ değişkeninin değeri, içe aktarılan dosyanın adı olur.
__doc__: Bu özel değişken, bir modül, sınıf veya fonksiyonun docstring'ini (belgeleme dizesini) içerir.
__init__: Bu özel metot, bir sınıfın örneği oluşturulduğunda otomatik olarak çağrılır. Genellikle bir sınıfın özelliklerini başlangıç değerleri ile ayarlamak için kullanılır.
__str__ ve __repr__: Bu özel metotlar, bir sınıfın örneğinin dize (string) temsilini sağlar. __str__ metodu, genellikle kullanıcıya yönelik bir dize temsilini sağlar, __repr__ metodu ise genellikle geliştiriciye yönelik daha teknik bir dize temsilini sağlar.
__eq__, __ne__, __lt__, __gt__, __le__, __ge__: Bu özel metotlar, bir sınıfın örneğinin diğer örneklere karşı nasıl karşılaştırılacağını belirler. Bu metotlar, ==, !=, <, >, <=, >= gibi karşılaştırma operatörlerinin davranışını tanımlar.
__add__, __sub__, __mul__, __truediv__, __floordiv__, __mod__, __pow__: Bu özel metotlar, bir sınıfın örneğinin nasıl aritmetik işlemlere tabi tutulacağını belirler. Bu metotlar, +, -, *, /, //, %, ** gibi aritmetik operatörlerin davranışını tanımlar.
Bu özel değişkenler ve metotlar, Python'da nesne yönelimli programlamayı (OOP) ve dilin genel işleyişini özelleştirmek için kullanılır. Bu özel değişkenler ve metotlar, Python dilinin kendisi tarafından tanımlanmıştır ve belirli özel anlamlara sahiptirler. Bu nedenle, bu isimler genellikle kullanıcı tanımlı değişkenler ve metotlar için kullanılmamalıdır.
Python'da if __name__ == "__main__": ifadesi, bir Python dosyasının doğrudan çalıştırılıp çalıştırılmadığını kontrol eder. Bu ifade, genellikle bir Python dosyasının hem doğrudan çalıştırılabilir bir script olarak hem de başka bir scriptten bir modül olarak içe aktarılabilir olmasını sağlamak için kullanılır.
Python'da, __name__ özel bir değişkendir. Bir Python dosyası doğrudan çalıştırıldığında, __name__ değişkeninin değeri "__main__" olur. Ancak, bir Python dosyası başka bir scriptten bir modül olarak içe aktarıldığında, __name__ değişkeninin değeri, içe aktarılan dosyanın adı olur.
Bu nedenle, if __name__ == "__main__": ifadesi, bir Python dosyasının doğrudan çalıştırılıp çalıştırılmadığını kontrol eder. Bu ifadenin altında yazılan kod, dosya doğrudan çalıştırıldığında çalışır, ancak dosya başka bir scriptten bir modül olarak içe aktarıldığında çalışmaz.
Örneğin:
# mymodule.py def my_function(): return "Hello, world!" if __name__ == "__main__": print(my_function())
Bu dosyayı doğrudan çalıştırırsanız (python mymodule.py), my_function çağrılır ve "Hello, world!" yazdırılır. Ancak, bu dosyayı başka bir scriptten bir modül olarak içe aktarırsanız (import mymodule), my_function çağrılmaz ve hiçbir şey yazdırılmaz.
Bu, bir Python dosyasının hem bir script olarak hem de bir modül olarak kullanılmasını sağlar. Bu, test kodunu veya demo kodunu bir Python dosyasına eklemek için kullanışlıdır, çünkü bu kod sadece dosya doğrudan çalıştırıldığında çalışır.
# Özel değişkenler ve metotlar örneği class MyClass: """ Bu bir örnek sınıftır. """ def __init__(self, value): """ Constructor metodu. """ self.value = value def __str__(self): """ Bu sınıfın örneğinin dize temsilini sağlar. """ return f"MyClass örneği, değeri: {self.value}" def __eq__(self, other): """ Bu sınıfın örneğinin diğer bir örnekle eşit olup olmadığını kontrol eder. """ if isinstance(other, MyClass): return self.value == other.value return False def __add__(self, other): """ Bu sınıfın örneğinin diğer bir örnekle toplama işlemi. """ if isinstance(other, MyClass): return MyClass(self.value + other.value) return NotImplemented # Sınıfın docstring'ini yazdırma print(MyClass.__doc__) # Sınıfın örneğini oluşturma ve dize temsilini yazdırma my_instance = MyClass(5) print(my_instance) # Sınıfın örneğinin eşitlik kontrolü my_other_instance = MyClass(5) print(my_instance == my_other_instance) # True # Sınıfın örneğinin toplama işlemi my_third_instance = my_instance + my_other_instance print(my_third_instance) # MyClass örneği, değeri: 10
0 Comments
Recommended Comments
There are no comments to display.