我的代码中有TypeError: 'NoneType' object is not iterable
的问题,目的是在名为Qrely
的类中编写一个方法,并且在__init__
方法中需要一些实例,如下所示:{{ 1}}
我遇到问题的方法是:
我尝试通过使用调度来更改实例类型,例如def __init__(self,ah=(),bh=(),av=(),bv=(),aph=(),bph=(), apv=(),bpv=()):
,但是我遇到了相同的错误
ah:Tuple
例如,当我测试代码时:
def qrelay_op(self,n, phi, alpha, delta):
self.ah = symbols(print("a_H1={:d}".format(n + 1)))
self.bh = symbols(print("b_H1={:d}".format(n + 1)))
self.av = symbols(print("a_V1={:d}".format(n + 1)))
self.bv = symbols(print("b_V1={:d}".format(n + 1)))
op = 0
for i in range(0,n-1):
op += phi[i] * (self.ah[i]*self.bh[i] + self.av[i]*self.bv[i])
B = 1/sqrt(2)*np.array([[1, 1],[-1, 1]])
self.aph = symbols(print("a'_H1={:d}".format(n + 1)))
self.bph = symbols(print("b'_H1={:d}".format(n + 1)))
self.apv = symbols(print("a'_V1={:d}".format(n + 1)))
self.bpv = symbols(print("b'_V1={:d}".format(n + 1)))
for i in range(0,n-1):
op = np.transpose(op, self.bh[i], self.ah[i+1], self.bph[i], self.aph[i+1], B)
op = np.transpose(op, self.bv[i], self.av[i+1], self.bpv[i], self.apv[i+1], B)
op = np.transpose(op, self.ah[0], self.av[0], self.aph[0], self.apv[0], self.rotatmatrix(alpha))
op = np.transpose(op, self.bh[n-1], self.bv[n-1], self.bph[n-1], self.bpv[n-1], self.rotatmatrix(delta))
syms = Qrely(self.ah, self.bh, self.av, self.bv, self.aph, self.bph, self.apv, self.bpv)
return syms, op
我收到此错误:
A=Qrely()
print(A.qrelay_op(3, np.array([np.pi, np.pi/2, np.pi/5]), np.pi/4, np.pi/3))
我(无法在我的代码中找到这个没有类型的对象,或者即使我似乎一切都很好,我也丢失了一些东西
答案 0 :(得分:1)
如果您说queue.get(block=False)
是问题,那么我们需要了解self.ah = symbols(print("a_H1={:d}".format(n + 1)))
在做什么。
看起来 像symbols
希望您将其传递给某些可迭代的对象,但是您传递给symbols
函数的输出是print()
None
尝试更改
>>> a = print('Sample Text')
>>> print(a)
None
到
self.ah = symbols(print("a_H1={:d}".format(n + 1)))