Почему вы не используете декоратор?
Я только что попробовал (у меня все еще есть Python 2.6.4, но он наверняка будет работать и с более новыми)
def decorate(fn):
print "Got", fn
return "Anything"
def foo():
@decorate
def bar(): pass
print bar
foo()
foo()
и это дает:
Got <function bar at 0x01EAD4B0>
Anything
Got <function bar at 0x01EAD4B0>
Anything
, так что вы можете легко сделать:
any code...
@runInThreads
def _():
whatever...
Вы можете даже определить _
любое количество раз в функции.
PS: Я прочитал ссылку из со взломом , затем подумал об этом и хотел прокомментировать там тоже, только чтобы заметить, что такая же техника уже предложена в комментариях там .