Python tkinter button jak zwrócić listę

0

Hejka, załóżmy że mam taki prosty kod

import random
from tkinter import *


class Car:
    def __init__(self, id, model, year_of_prod):
        self.id = id
        self.model = model
        self.year_of_prod = year_of_prod


def create_list_of_cars(number):
    list_of_cars = []
    for i in range(1, number):
        car = Car(i, 'Ford C-Max', random.randint(2011, 2016))


root = Tk()
root.geometry("300x200")
root.title("Utworz auta")
text_label = Label(root, text="Ile aut utworzyc?")
text_label.place(x=60, y=50)
number_entry = Entry()
number_entry.place(x=45, y=100)
confirm_button = Button(root, text="Potwierdz utworzenie listy", command=lambda: create_list_of_cars(int(number_entry.get())))
confirm_button.place(x=25, y=150)

root.mainloop()

W jaki sposób mogę tę listę samochodów "zwrócić" tzn. dostać się do jej obiektów w dalszym kodzie (po wciśnięciu przycisku i utworzeniu jej)

0

Funkcja create_list_of_cars nie tworzy listy, nie nie zwraca, ani nie modyfikuje, żadnego obiektu, coś tam robi w pętli na stosie, może tak:

def create_list_of_cars(number):
    list_of_cars = []
    for i in range(1, number):
        list_of_cars.append(Car(i, 'Ford C-Max', random.randint(2011, 2016)))
    return list_of_cars

A potem:

list_cars = None
confirm_button = Button(root, text="Potwierdz utworzenie listy", command=lambda: list_cars = create_list_of_cars(int(number_entry.get())))

Nie znam tej bibliteki, także nie wiem czy w command może być przypisanie, Sprawdź.

0

Wiem że funkcja nic nie zwraca, bo nie można zrobić takiego przypisania jak zaproponowałeś (specjalnie nie dałem returna, bo się zastanawiam jak to zrobić)

Btw. w kodzie co wrzuciłeś usunęło mi niechcący apend'a
list_of_cars.append(car)
w pętli, przepraszam za to

1 użytkowników online, w tym zalogowanych: 0, gości: 1