我有一個裝飾@newthread
它包裝的功能在一個單獨的線程中運行(使用functools
wraps
和Thread
從threading
)。但是,有些功能我只想在某些時候發生。如何切換一個裝飾的作用在Python3
目前,我有@newthread
檢查函數的關鍵字參數被包裹,如果發現一個布爾new_thread
等於True
然後它運行在一個單獨的線程的功能,否則正常運行的功能。例如,
@newthread
def foo(new_thread=False)
# Do stuff...
foo() # Runs normally
foo(new_thread=True) # Runs in new thread
這是這樣做的規範方式,還是我錯過了什麼?
@Kevin的代碼是什麼有需要評審? '@ newthread'實現沒有顯示,'foo'的東西都是假設的。 –
或者你可以根據需要使用'thread_foo = newthread(foo)'並使用'foo'或'thread_foo',但我認爲你的方式更好。 –
@ 200_success:是的,如果OP實際提供了一些代碼進行審查,這可能會有所幫助。 – Kevin