Python函数调用中的增量值

时间:2013-05-24 21:47:15

标签: python multithreading

所以我一直在探索线程,我想知道在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)

1 个答案:

答案 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中的部分内容,但它们没有太多深度。