Witam. Z góry przepraszam za wszystkie błędy jakie tutaj popełnię.
Robię pierwszy projekt w pythonie po opanowaniu jakiś tam podstaw.
Byłby on przeznaczony dla firmy kurierskiej. Cel jest taki, aby program wyświetlał dane kurierów i klientów, pozwalał na dodawanie nowych, usuwanie ich oraz edytowanie ich danych.
Nie wiem jak dokładnie opisać mój problem, ale chodzi mi o to, żeby w trakcie tworzenia nowego kuriera zapisywał się on jako "kurier_3", gdy tworzę jeszcze następnego "kurier_4" itd.
Druga sprawa. To chciałem aby program liczył kurierów i klientów, ale gdy tworzę jakąś zmienną i próbuję ją zmieniać podczas metody magicznej init wyskakuje mi błąd "UnboundLocalError: local variable 'liczba_kurierów' referenced before assignment"
Załączam fragment kodu, który niestety nie jest jeszcze kompletny, ale myślę, że wyjaśniłem o co chodzi i dacie radę mi pomóc.
print("Co chcesz zrobić?")
liczba_kurierów = 0
class Person():
def __init__(self, name, surname, age):
self.name = name
self.surname = surname
self.age = age
class Client(Person):
def __init__(self,name,surname,rodzaj_paczki,adres):
super().__init__(name,surname,age=0)
self.rodzaj_paczki = rodzaj_paczki
self.adres = adres
self.wszystko = [name, surname, rodzaj_paczki, adres]
class Courier(Person):
def __init__(self,name,surname,age,position):
super().__init__(name,surname, age)
self.position = position
self.wszystko = [name,surname,age,position]
liczba_kurierów += 1 <==== Tutaj Wywala błąd
kurier_1 = Courier("Adam","Wysocki",27,"Młodszy")
kurier_2 = Courier("Michał", 'Wahadło',39,'Starszy')
klient_1 = Client('Jan', 'Zamoyski', 'list polecony ekonomiczy', 'Starachowice')
klient_2 = Client('Ryszard','Lena','paczka priorytet', 'Wąchock')
while True:
print('Wciśnij "E", aby edytować dane')
print('Wciśnij "K" by zobaczyć dane kuriera')
print('Wciśnij "O" by zobaczyć dane odbiorcy')
kontunuacja = input()
if kontunuacja == "O" or kontunuacja == 'o':
print("liczba klientów:", end='')
print(klienci)
print(klient_1.wszystko)
print(klient_2.wszystko)
break
elif kontunuacja == "K" or kontunuacja == 'k':
print("liczba kurierów:", end='')
print(kurierzy)
print("Imię: ",end='')
print(kurier_2.name)
print("Nazwisko: ", end='')
print(kurier_2.surname)
print("Stopień: ", end='')
print(kurier_2.position)
print("Wiek: ", end='')
print(kurier_2.age)
print('')
print('')
print("Imię: ", end='')
print(kurier_1.name)
print("Nazwisko: ", end='')
print(kurier_1.surname)
print("Stopień: ", end='')
print(kurier_1.position)
print("Wiek: ", end='')
print(kurier_1.age)
break
elif kontunuacja == 'E' or kontunuacja == 'e':
print("Napisz:")
print('"+k", by dodać kuriera')
print('"+o", by dodać odbiorcę')
edycja = input()
if edycja == '+K' or edycja == '+k':
print('wpisz imię')
imię = input()
print('wpisz nazwisko')
nazwisko = input()
print('wpisz wiek')
wiek = input()
print('wpisz stanowisko')
stanowisko = input()
Tutaj właśnie pojawia się problem i nie bardzo wiem w jaki sposób go rozwiązać...
print('wpisz nazwę kuriera')
kk = input()
kk = Courier(imię,nazwisko,wiek,stanowisko)
print('dodałeś nowego kuriera')
print(kurier_3.wszystko)
else:
print("Wciśnij O, lub K")
continue