Middle
Python dilinde bağlamda new yöntemi ne yapar?
sobes.tech yapay zeka
AI'dan gelen yanıt
__new__ - sınıfın yeni bir örneğini oluşturmaktan sorumlu olan sınıf metodudur. __init__'den önce çağrılır ve hangi nesnenin döndürüleceğini belirler. Genellikle benzersiz nesneler (Singleton) veya değiştirilemez türde nesneler (tuple veya str gibi) oluşturmak için kullanılır.
class Singleton:
_instance = None
def __new__(cls):
# Zaten bir örneğin olup olmadığını kontrol et
if cls._instance is None:
# Yoksa, ana sınıfa (object) devrederek oluştur
cls._instance = super().__new__(cls)
# Var olan veya yeni oluşturulan örneği döndür
return cls._instance
# Kullanım örnekleri
s1 = Singleton()
s2 = Singleton()
# Beklenen sonuç: True
print(s1 is s2)
__new__ ve __init__ karşılaştırması:
-
__new__:- Statik yöntemdir (ilk argüman
cls). - Nesne oluşturulmadan önce çağrılır.
- Oluşturulan nesneyi döndürür.
- Statik yöntemdir (ilk argüman
-
__init__:- Nesne yöntemi (ilk argüman
self). - Nesne oluşturulduktan sonra çağrılır.
- Değer döndürmez (örtülü olarak None döner).
- Oluşturulan nesnenin özniteliklerini başlatmak için kullanılır.
- Nesne yöntemi (ilk argüman