0

所以我一直在探索线程,我想知道python中是否有类似于c的++。本质上,我想调用一个线程,并在调用线程时增加一个值。所以一个类似物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)
4

1 回答 1

7

Python 没有等效的++,这是故意的。这是哲学上的差异。

Python 试图使表达式/语句的划分尽可能干净。但是 C++ 试图将所有可能是表达式的东西都变成表达式。

与此同时,Python 还试图通过使变异函数不返回任何内容来使变异/复制划分尽可能干净。

因此,正确的做法是您已经在做的事情:

thread.start_new_thread(isprime,(i,))
i += 1

官方设计常见问题解答涵盖了为什么我不能在表达式中使用赋值?以及为什么 list.sort() 不返回排序后的列表,但它们没有太多深度。

于 2013-05-24T21:50:23.307 回答