Jump to content

Python

  • entries
    53
  • comments
    0
  • views
    405

Özel Değişkenler


Doğuhan ELMA

94 views

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.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...