Robię program rysunkowy z Pythonem i Pygame. Próbuję włączyć rzecz skrypt-fu, w którym program otwiera interpreter Pythona na żywo po uruchomieniu i umożliwia użytkownikowi wykonywanie poleceń w tłumaczeniu obok interfejsu graficznego.

Moja obecna strategia polega na uruchomieniu głównej pętli wewnątrz własnej nici, a następnie mieć aplikację otwarte za pomocą skryptu bash, który robi "Python -i main.py"

Czy to jest bezpieczny / skuteczny / idealny sposób na to? Jak mogę używać zamków, aby upewnić się, że polecenia wchodzące z tłumacza są wykonywane między głównymi pętlami?

To mój pierwszy raz za pomocą wątków, więc proszę mi wyjaśnić, jak mam 7 lat.

Dzięki :)

2
hedgehogrider 19 wrzesień 2012, 07:42

2 odpowiedzi

Najlepsza odpowiedź

Dlaczego używasz tłumacza na żywo na żywo? Czy zdajesz sobie sprawę, że pygame jest wyposażony w jeden wbudowany? Dokumentacja jest Oto. To łatwo wyeliminuje wszystkie twoje problemy.

1
ThisIsAQuestion 20 wrzesień 2012, 18:43

Interpreter nie współpracuje z ustawieniami zamków (ponieważ nie wie o nich). W ten sposób nie można zagwarantować, gdy kod wprowadzony przez użytkownika zostanie wykonany.

Rozważ przy użyciu {x0}} moduł, aby zbudować własną konsolę interaktywną (jest to naprawdę łatwe !). Następnie możesz zrobić blokowanie za każdym razem, gdy przejdziesz do wykonania wejścia użytkownika.

3
nneonneo 19 wrzesień 2012, 03:46