Hej,
czy któryś z forumowiczów jest mi w stanie pomóc z "obiect oriented programming"?
Robię pewien tutorial pythona z internetu lecz natknąłem się na problem przez który nie mogę pójść dalej ;)
W dziale o programowaniu obiektowym osoba która prowadzi kurs napisała krótki program w którym znajduje się klasa Student wraz z jego podstawowymi danymi takimi jak imie, nazwisko itp. Poniżej w pętli while zrobił mini system dodawania i wyświetlania wcześniej dodanych studentów :)
Niestety program nie do końca działa tak jak instruktor to sobie wyobrażał, ponieważ po dodaniu kilku studentów i wybraniu opcji wyświetlenia ich, program wyświetla tylko ostatniego dodanego studenta. Instruktor stwierdził, że wyjaśni dlaczego oraz pokaże jak się z tym uporać w następnych odcinkach, ale niestety tego nie zrobił a ja nie jestem w stanie kontynuować kursu jak czegoś nie rozumiem bo mnie to irytuje :D
Rozumiem z kodu, że program wyświetla tylko ostatnio dodanego studenta ponieważ przy dodawaniu studentów nadpisuje on tylko obiekt new_student zamiast tworzyć nowy. Będę wdzięczny za każe informacje które pomogą mi trochę zrozumieć w jaki sposób poprawić kod programu żeby działał tak jakie było jego założenie :)
Poniżej zapodaje kod
class Student:
stuCount = 0
def __init__(self,fname,lname,subject,grade):
self.fname = fname
self.lname = lname
self.subject = subject
self.grade = grade
Student.stuCount += 1
def displayStudentCount(self):
print("Total amount of students is {}".format(Student.stuCount))
def studentInfornation(self):
print("First name: {}\n Last name: {}\nSubject: {}\nGrade: {}".format(self.fname,self.lname,self.subject,self.grade))
print("1 - Add student\n2 - Studen list")
while True:
option = int(input("Ether your option?: "))
if option == 1:
first_name = input("Enter student name: ")
last_name = input("Enter student last name: ")
subject = input("Enter subject of the exam: ")
mark = input("Enter student grade: ")
new_student = Student(first_name,last_name,subject,mark)
elif option ==2:
new_student.studentInfornation()
else:
print("Unknown command")