Python class yapısını anlamıyorum

Arkadaşlar merhaba, Pythonu yaklaşık 1 yıldır öğreniyorum bu aşamada basit sayılabilecek erp uygulaması geliştirmişliğim var ancak genelde fonksiyon kullanarak tek sayfada (main sayfasında) tüm kodlarımı yazıp çalıştırıyorum oop felsefesini bir türlü anlamadım bu konuda örnekleriyle bana yardımcı olacak bir türkçe video veya makale var mı?

İlk başladığım zamanlarda şu iki video çok işime yaramıştı:


3 Beğeni

Merhaba esasında bu videoları çok seyrettim… Soruyu yanlış sormuş olabilirim şöyle söyliyelim class ve obje yapılarını ve metotlarını esasında biliyorum ancak nasıl kullanacağım konusunu bilmiyorum… Mesela hali hazırda çalıştığım şirket için bir uygulama geliştiriyorum uretim için sipariş alacak ve veritabanına girecek işin özü bu ancak üretim sayfasında bir class ve class içerisinde nesneye ait özellikler ve metodlar belirledim sonra main sayfasına bunu import ettim aynı şekilde bu main sayfasınıda buna import ettim class içerisinde listele adlı bir statik metod var bu tablewidget’ta siparişleri listeliyor ancak bunu main sayfasında çağırınca hata veriyor attributeeror diyor kodlar şöyle

urunler sayfasının kodu:

import dbcon
import siparis
import calc
import main

class uretim:
    def __init__(self, musteriAdi="", siparisTarihi="", cap="", boy="", volt="", watt="", urun="", aciklama="", durumu="", markalama="", fiyati="", bitisTarihi="", islemiYapan="") -> None:
        self.musteriAdi = musteriAdi
        self.siparisTarihi = siparisTarihi
        self.cap = cap
        self.boy = boy
        self.volt = volt
        self.watt = watt
        self.urun = urun
        self.aciklama = aciklama
        self.durum = durumu
        self.fiyati = fiyati
        self.markalama = markalama
        self.bitisTarihi = bitisTarihi
        self.islemiYapan = islemiYapan

    @staticmethod
    def uretimListele():
        main.cursor.execute("SELECT * FROM gelen_giden_cihazlar WHERE Teslim_Durumu='Teslim edildi'")
        dbcon.commit()
        main.ui.cihazlar_tableWidget.clear()
        main.ui.cihazlar_tableWidget.setHorizontalHeaderLabels(("No", "Müşteri Cari", "Müşteri Adı", "Müşteri Tel", "Cihaz","Cihaz Adeti", "Cihaz Kodu", "Şikayet", "Durumu", "Yapılan İşlem", "Ücreti(TL)", "Ödeme", "KDV", "Toplam", "Teslim Durumu", "Ekleme Tarihi", "Güncelleme Tarihi", "Teslim Tarihi", "İşlemi Yapan"))
        main.ui.cihazlar_tableWidget.horizontalHeader().setSectionResizeMode(main.QHeaderView.Stretch)
        for satir_index, satir_veri in enumerate(dbcon.cursor):
            for sutun_index, sutun_veri in enumerate(satir_veri):
                main.ui.cihazlar_tableWidget.setItem(satir_index, sutun_index, main.QTableWidgetItem(str(sutun_veri)))

    def uretimEkle(self):
        try:
            dbcon.cursor.execute("INSERT INTO uretim (Musteri_Adi, Siparis_Tarihi, Cap, Boy, Volt, Watt, Urun, Aciklama, Markalama, Fiyati, Islemi_Yapan) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
            (self.musteriAdi, self.siparisTarihi, self.cap, self.boy, self.volt, self.watt, self.urun, self.aciklama, self.markalama, self.fiyati, self.islemiYapan))
            dbcon.commit()
        except Exception as Hata:
            main.hatalar(Hata)
    
    def uretimGuncelle(self):
        try:
            dbcon.cursor.execute("UPTADE uretim SET (Musteri_Adi, Cap, Boy, Volt, Watt, Urun, Aciklama, Markalama, Durumu, Fiyati, Bitis_Tarihi, Islemi_Yapan)",
            (self.musteriAdi, self.cap, self.boy, self.volt, self.watt, self.urun, self.aciklama, self.markalama, self.durum, self.fiyati, self.islemiYapan))
            dbcon.commit()
        except Exception as Hata:
            main.hatalar(Hata)
    
    def uretimSil(self,secilenID):
        try:
            dbcon.cursor.execute("DELETE FROM uretim WHERE Id='%s'",(secilenID))
            dbcon.commit()
        except Exception as Hata:
            main.hatalar(Hata)

buda main sayfasının ilgili kodu.

def uretimListele():
    urtm = uretim_.uretim()
    urtm.uretimListele()

Dönen hata ise bu

urtm = uretim_.uretim()
AttributeError: partially initialized module ‘uretim_’ has no attribute ‘uretim’ (most likely due to a circular import)

bu dosyada main’i import edip, main dosyasında da bu dosyayı import ediyorsanız bu hatayı alıyor olabilirsiniz.

Bu hatayı gördüğünüz yerde import kodlarınızı gözden geçirin.

Merhaba.

Bu hatanın, sınıfların veya metotların nasıl kullanılması gerektiği ile bir alakası yok.


Ayrıca: