Używam biblioteki, która zapewnia interfejs Pythona do zewnętrznego programu. To pozwala mi utworzyć:Python: jak udostępnić instancję obiektu przez wiele wywołań skryptu
foo = Foo()
Powyższy kod uruchamia nową instancję programu Foo, którą mogę kontrolować z poziomu Pythona.
Mam skrypty Pythona, które muszą być wywoływane wiele razy iw zależności od parametrów zewnętrznych, powiedz pojedynczej instancji zewnętrznego programu Foo, aby zrobić różne rzeczy. Oczywiste, że nie może zrobić
foo = Foo()
każdym razem,
ponieważ tworzy nową instancję Foo za każdym razem mój skrypt działa.
To, co chcę zrobić, to jednorazowo utworzyć foo= Foo()
i mieć wiele inwokacji współużytkować to samo wystąpienie. Obecnie jestem po prostu tworzenia go raz, serializacji go, a moje skrypty deserializacji go. Czy to podejście działa? Czy istnieje lepsza alternatywa?
Dzięki!
Próbowałem to faktycznie zrobić, otrzymałem komunikat "Nie mogę się pozbyć obiektu" lock ":". Teraz się nad tym zastanawiam. –
wk1989
Tak, ma ograniczenia, których możesz/nie możesz wykonywać, aby robić to, co chcesz: http://docs.python.org/library/pickle.html#what-can-be-pickled-and-unpickled – zeekay
jeśli używasz blokady, prawdopodobnie musisz wziąć inną ścieżkę, taką jak gniazda lub potoki, aby zapewnić zablokowany dostęp do klasy – lunixbochs