Sınıftan Sınıfa Return

İki class düşünün, biri diğerini aktif hâle getiriyor ve kodun işleyişini oradan aldığı return değeri belirleyecek; (return [True/False, 0/1]). Böyle bir durum mümkün mü? Yapamadığım için soruyorum.

__init__ içerisine return yerleştirilemiyor, herhangi bir fonksiyona da return koyunca onu diğer sınıfa gönderemiyorum. Örnek kısa bir kod yazar mısınız?

3 Beğeni

Şunun gibi birşey başka bir sınıftan return ile değer çevirmek.
Yani aşağıda istediğim print(Yazdir()) kodunu Basla sınıfında Yazbel diye cevaplandırması.

class Basla:
    def __init__(self):
        print(Yazdir())

class Yazdir:
    def __init__(self):
        self.yazi('Yazbel')

    def yazi(self, isim):
        print("Merhaba")
        return isim

Basla()

Aradığınız şöyle bir kodmu ?

class Basla:
    @staticmethod
    def basla():
        print(Yazdir.yazdir())

class Yazdir:
    @staticmethod
    def yazdir():
        return "Yazbel"

Basla.basla()

Tam olarak değil hocam, merak ettiğim husus şu;
Fonksiyonu değil de class’ı return geri döndürebiliyor muyuz?

class Basla():
    return "Yazbel"

Bu şekilde bir koddanmı bahsediyorsunuz ?
Maalesef return sadece fonksiyon içinde kullanılabiliyor.

Evet hocam, başka bir yolu yok değil mi?

Şuradaki işlem işinize yarayabilir belki ama bildiğim kadarıyla sınıftan değer return edilemiyor.

1 Beğeni

Aklıma şöyle bir çözüm geldi ancak bu yöntemde instance’I erişmek pek şık ve güzel durmuyor zira normalde sınıfı çağırdığımızda instance döndürdüğünden dolayı sınıftaki metodları kullanabiliyoruz. Ben böyle bir çözüm yerine sınıf instance’sına bir get_value gibi bir metod ekleyip gereken değeri bu metoddan alırdım.

class a:
    def __new__(self):
        class_instance = super().__new__(self) 
        
        return True, class_instance
   
    def __init__(self):
        self.value = 1
    
    def method(self):
        print()

print(a()) 
2 Beğeni
def Yazdir():
    return "Yazbel"
2 Beğeni