Сохранение информации классов в файл
Требуется записать информацию об классах в блокнот. Не догоняю как сделать, пробовал создавать отдельную функцию для каждого класса, но не получилось.
class iComputer():
def __init__(self, freq, core, val_RAM, val_HW):
self.freq = freq
self.core = core
self.val_RAM = val_RAM
self.val_HW = val_HW
def showParams(self):
print("Params of main PC:\n" + "Frequence is " + str(self.freq) +"\nCore is " + str(self.core) + "\nValue of RAM is " + str(self.val_RAM) + "\nValue of HW is " + str(self.val_HW))
def iPower(self):
print("\nPower of PC is", (self.freq * self.core * self.val_RAM))
mainPC = iComputer(4.3, 8, 16, 512)
mainPC.showParams()
mainPC.iPower()
class iNoteBook(iComputer):
def __init__(self, freq, core, val_RAM, val_HW, dispSize, weight, keyLight, valUsb):
super().__init__(freq, core, val_RAM, val_HW)
self.dispSize = dispSize
self.weight = weight
self.keyLight = keyLight
self.valUsb = valUsb
def showParams(self):
print("\nParams of NoteBook:" + "Frequence is " + str(self.freq) +"\nCore is " + str(self.core) + "\nValue of RAM is " + str(self.val_RAM) + "\nValue of HW is " + str(self.val_HW) + "\nDisplay size is " + self.dispSize + "\nWeight is " + str(self.weight) + "\nKey lightning " + self.keyLight + "\nNumber of usb is " + str(self.valUsb))
def iPower(self):
print("\nPower of NoteBook is", (self.freq * self.core * self.val_RAM))
noteBook = iNoteBook(2.2, 4, 8, 256, "1920x1080", 2, "No", 3)
noteBook.showParams()
noteBook.iPower()
Ответы (2 шт):
Автор решения: Alioshca Z
→ Ссылка
Добавить метод для записи в класс.
Вот пример для класса iComputer:
class iComputer():
def __init__(self, freq, core, val_RAM, val_HW):
self.freq = freq
self.core = core
self.val_RAM = val_RAM
self.val_HW = val_HW
def tofile(self, path):
info = "Frequence is {}\n\nCore is {}\n\nValue of RAM is {}\n\nValue of HW is {}".format(self.freq, self.core, self.val_RAM, self.val_HW)
with open(path, 'w') as f:
f.write(info)
x = iComputer(2.2, 4, 8, 256)
x.tofile('file.txt') #вместо file.txt вставить свой путь к файлу txt
Для класса iNoteBook определить такой же метод только со своими аргументами.
Автор решения: splash58
→ Ссылка
Объявите в родительском классе вот такую функцию
def __str__(self) :
members = {attr: getattr(self, attr) for attr in dir(self) if not callable(getattr(self, attr)) and not attr.startswith("__")}
return self.__class__.__name__+ ' ' + members.__str__()
и теперь, если
noteBook = iNoteBook(2.2, 4, 8, 256, "1920x1080", 2, "No", 3)
print(noteBook)
в результате вы получите
iNoteBook {'core': 4, 'dispSize': '1920x1080', 'freq': 2.2, 'keyLight': 'No', 'valUsb': 3, 'val_HW': 256, 'val_RAM': 8, 'weight': 2}
если нужно сохранять в файл, можно функцию переименовать, а можно брать
noteBook .__str__()