我现在正在制作一个程序,要求用户输入矩阵的行列式。
首先,将生成一个非常复杂的矩阵,两秒钟后,将生成一个新的矩阵。

这是我的代码

#import part
import numpy
import scipy
import threading
from multiprocessing import pool

#defining part
def random_matrix(n):
    array = numpy.random.random((n,n))
    print array
def random_matrix_integer(n):
    print "Sorry I was just joking, Please calculate this one."
    array = numpy.random.random_integers(0,10,(n,n))
    print array


#process part
print "Now,let's start a mathematical game."
random_matrix(3)
print "Please Tell me the dot product of this Matrix\n"
t =threading.Timer(2,random_matrix_integer(3))
t.start()


它会一直工作到计时器部分
“请告诉我此矩阵的点积”会与第一个矩阵同时发出警报,
两秒钟后控制台说

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 1082, in run
self.function(*self.args, **self.kwargs)
TypeError: 'NoneType' object is not callable


如果有人可以帮助我解决这个简单的问题,我将不胜感激

最佳答案

您需要传递一个可调用对象,因此请使用lambda

t =threading.Timer(2,lambda: random_matrix_integer(3))


或者使用args传递random_matrix_integer来传递n

t = threading.Timer(2,random_matrix_integer, args=(3,))

关于python - python 2 Timer不遵循命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31503222/

10-12 20:22