И снова привет, Тостер.
Решив создать простую программу, натолкнулся на ряд небольших трудностей.
1. Сохранение дубликата класса со всеми его атрибутами(решил с помощью pickle)
2. Создание дубликата класса с помощью функции(пользователь программки выбирает действие, записывает нужные данные,
которые в дальнейшем перейдут в аргументы функции, которая, в свою очередь создаст дубликат класса)
Выберите действие -> добавить ученика -> введите данные о ученике(имя, возраст, класс, информация) -> сохранение данных в одноимённые переменные -> вызов функции создания ученика(дубликата класса) и передача данных как аргументов - сохранение дубликата класса с помощью pickle.
class Student:
def __main__(self, name, age, sclass, info):
self.name = name
self.age = age
self.sclass = sclass
self.information = info
# код ниже в отдельном модуле, тут пишу всё сразу
import pickle # importing for AddStudent
"""ADD STUDENT BLOCK"""
students_txt_files = []
last_count_txt = open('last_count.txt', 'w')
last_count_txt.write('0')
last_count_txt.close()
def add_student(name, age, sclass, info=None):
new_student = Student() # create instance class(new student)
default_txt_tamplate = 'student_' # create student text file template
last_count = open('last_count.txt') # opening text file with last count number
count = int(last_count.read(1)) # writing last count number to count
student_name_txt = default_txt_tamplate[0] + str(count) # creating new student text file name
student_txt = open(student_name_txt, 'w') # creating new student text file
pickle.dump(new_student, student_txt, 3) # save instance class(student)
Не совсем до конца написан, но проблема заключается в этом:
def add_student(name, age, sclass, info=None):
new_student = Student() # create instance class(new student)
Как аргументы функции передать в аргументы для создания дубликата класса?
Пробовал так, не получилось. пишет Unexpected argument во второй строчке:
add_student(name, age, sclass, info=None):
new_student = Student(name, age, sclass, info) # create instance class(new student)
Надеюсь на вашу помощь)