所以我一直在探索线程,我想知道在python中是否有像++那样的++模拟。本质上,我想调用一个线程,并在调用线程时,增加一个值。所以类似于thread.start_new_thread(function, (variable++,))
我寻找其他问题,我有点怀疑这是可能的,但任何帮助都表示赞赏。
我正在玩的具体代码是:
import thread
def isprime(x):
global list
for i in range(3, x-1,2):
if x % i == 0:
return
print x
list.append(x)
n = 1000000
i=3
list = [2]
while i < n:
try:
thread.start_new_thread(isprime,(i,))
i+= 2
except:
pass
print sorted(list)
print len(list)
答案 0 :(得分:6)
Python没有等同于++
,这是有意的。这是一种哲学上的差异。
Python尝试使表达式/语句尽可能干净。但是C ++试图将所有可能成为表达式的表达式转化为表达式。
与此同时,Python还试图通过使变异函数不返回任何内容来使变异/复制区分尽可能干净。
所以,正确的做法是你已经在做的事情:
thread.start_new_thread(isprime,(i,))
i += 1
官方设计常见问题解答涵盖了Why can't I use an assignment in an expression?和Why doesn't list.sort() return the sorted list中的部分内容,但它们没有太多深度。