名称中的名称:TypeError:“ NoneType”对象不可迭代

时间:2019-07-08 20:28:48

标签: python symbols

我的代码中有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)) 我(无法在我的代码中找到这个没有类型的对象,或者即使我似乎一切都很好,我也丢失了一些东西

1 个答案:

答案 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)))