Оба кода, похоже, имеют аналогичную производительность. Как работает область действия в этом случае? Кто-нибудь из них лучше другого? Есть ли лучший способ добиться такого же поведения?Область применения Python
код 1:
class ex:
b = 6
def foo(self, a):
def fooHandler(a):
while True:
print a
time.sleep(1)
threading.Thread(target=fooHandler, args=(a,)).start()
x = ex()
x.foo(10)
x.foo(100)
x.foo(1000)
код 2:
class ex:
b = 6
def foo(self, a):
def fooHandler():
while True:
print a
time.sleep(1)
threading.Thread(target=fooHandler).start()
x = ex()
x.foo(10)
x.foo(100)
x.foo(1000)
Отступ был испорчен, когда я скопировал его из моего редактора, он должен работать сейчас – user3019917
Возможно, вы захотите прочитать следующее: http://stackoverflow.com/questions/4020419/why-arent-python-nested-functions- call-closures – dmitri
@dmitri ссылка была полезна :) спасибо – user3019917