Не выводятся данные про ssd

class SSD:

    def __init__(self, manufacture, model, formfactor, storage, interface,):
        self.manufacture = manufacture
        self.model = model
        self.formfactor = formfactor
        self.storage = storage
        self.interface = interface
        self.work()

    def work(self):
        kingston = {"KC600", "HyperX", "SSDnow"}
        samsung = {"Evo", "Evo-Pro"}

        if self.manufacture == kingston:
            self.model = {"KC600", "HyperX", "SSDnow"}
        elif self.manufacture == samsung:
            self.model ={"Evo", "Evo-Pro"}
        self.formfactor = {"2,5'", "3.0'"}
        self.storage = {"250gb", "500gb", "1Tb", "2Tb"}
        self.interface = {"SATA3", "PCIex1", "PCIex2", "PCIex4"}

        readingspeed = None

        if self.interface == "SATA3":
            readingspeed == 600

        elif self.interface == "PCIe 3.0 x1":
            readingspeed == 984,6

        elif self.interface == "PCIe 3.0 x2":
            readingspeed == 1970

        else:
            readingspeed == 3940

    def vyvod(self, readingspeed):
        return print(f"""SSD накопитель {self.manufacture},{self.model}
{self.storage} и {self.formfactor} работает через интерфейс {self.interface}
 с пропускной способностью {readingspeed} Mbit/s.""")

if __name__ == "__ssd__":
    ssd = SSD("kingston", "HyperX", "2.5'", "250gb", "SATA3")

Ответы (1 шт):

Автор решения: CrazyElf

Много всего нужно менять. Для начала:

  • опишите метод __repr__ вместо vyvod, тогда можно будет делать просто print(ssd) для вывода информации
  • readingspeed - это тоже поле класса, поэтому везде должно быть self.readingspeed
  • присваивание - это одно равно, а не два (везде, где присвоение readingspeed идёт)
  • про if __name__ == "__main__": вам уже написали

Итого, как-то так для начала:

class SSD:

    def __init__(self, manufacture, model, formfactor, storage, interface,):
        self.manufacture = manufacture
        self.model = model
        self.formfactor = formfactor
        self.storage = storage
        self.interface = interface
        self.work()

    def work(self):
        kingston = {"KC600", "HyperX", "SSDnow"}
        samsung = {"Evo", "Evo-Pro"}

        if self.manufacture == kingston:
            self.model = {"KC600", "HyperX", "SSDnow"}
        elif self.manufacture == samsung:
            self.model ={"Evo", "Evo-Pro"}
        self.formfactor = {"2,5'", "3.0'"}
        self.storage = {"250gb", "500gb", "1Tb", "2Tb"}
        self.interface = {"SATA3", "PCIex1", "PCIex2", "PCIex4"}

        self.readingspeed = None

        if self.interface == "SATA3":
            self.readingspeed = 600

        elif self.interface == "PCIe 3.0 x1":
            self.readingspeed = 984,6

        elif self.interface == "PCIe 3.0 x2":
            self.readingspeed = 1970

        else:
            self.readingspeed = 3940
        
    def __repr__(self):
        return f"""SSD накопитель {self.manufacture},{self.model}
{self.storage} и {self.formfactor} работает через интерфейс {self.interface}
 с пропускной способностью {self.readingspeed} Mbit/s."""

if __name__ == "__main__":
    ssd = SSD("kingston", "HyperX", "2.5'", "250gb", "SATA3")
    print(ssd)

Вывод:

SSD накопитель kingston,HyperX
{'1Tb', '250gb', '2Tb', '500gb'} и {"3.0'", "2,5'"} работает через интерфейс {'PCIex1', 'PCIex4', 'SATA3', 'PCIex2'}
 с пропускной способностью 3940 Mbit/s.
→ Ссылка