使用Python中的线程无法识别数据类型

时间:2018-11-20 18:26:52

标签: python

我正在尝试使用Python中的线程制作计算代码。我的代码如下:

from threading import Thread
from time import sleep

class Fact(Thread):
    def __init__(self, start, end):
        Thread.__init__(self)
        self.start = start
        self.end = end

    def factorial(self):
        p = 1
        for i in range(self.start, self.end):
            p = p * i
        return p            

    def run(self):
        global s
        s = s + self.factorial()
        sleep(2)
        print ("output is ", s)

s = 0

def main():
    n = 6
    mid = n / 2
    obj1 = Fact(1, mid)
    obj1.start()
    obj2 = Fact(mid + 1, n)
    obj2.start()

if __name__ == "__main__":
    main()

我想要的是迭代计算数字的阶乘。例如,如果我输入6作为输入,则应该做以下乘积:

product(1, 3) + product(4, 6)

问题是当我运行此代码时:

obj1.start()

我遇到以下错误:

TypeError: 'int' object is not callable

我找不到哪一个是错误的。

0 个答案:

没有答案