Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对于名称中的名称:TypeError:“NoneType”对象不可编辑_Python_Symbols - Fatal编程技术网

Python 对于名称中的名称:TypeError:“NoneType”对象不可编辑

Python 对于名称中的名称:TypeError:“NoneType”对象不可编辑,python,symbols,Python,Symbols,我遇到了TypeError的问题:“NoneType”对象在我的代码中不是iterablein,用于在名为qrel的类中编写方法,它在uu init_u_u方法中的一些实例如下:def u init_uself,ah=,bh=,av=,bv=,aph=,bph=,apv=: 我遇到问题的方法是: 我试图通过使用dispatch来更改实例的类型,例如ah:tupleb,但我得到了相同的错误 def qrelay_opself,n,phi,alpha,delta: self.ah=symbolspr

我遇到了TypeError的问题:“NoneType”对象在我的代码中不是iterablein,用于在名为qrel的类中编写方法,它在uu init_u_u方法中的一些实例如下:def u init_uself,ah=,bh=,av=,bv=,aph=,bph=,apv=: 我遇到问题的方法是:

我试图通过使用dispatch来更改实例的类型,例如ah:tupleb,但我得到了相同的错误

def qrelay_opself,n,phi,alpha,delta: self.ah=symbolsprinta_H1={:d}.formatn+1 self.bh=symbolsprintb_H1={:d}.formatn+1 self.av=symbolsprinta_V1={:d}.formatn+1 self.bv=symbolsprintb_V1={:d}.formatn+1 op=0 对于0范围内的i,n-1: op+=phi[i]*self.ah[i]*self.bh[i]+self.av[i]*self.bv[i] B=1/sqrt2*np.数组[[1,1],-1,1]] self.aph=symbolsprinta''u H1={:d}.formatn+1 self.bph=symbolsprintb''u H1={:d}.formatn+1 self.apv=symbolsprinta''u V1={:d}.formatn+1 self.bpv=symbolsprintb''u V1={:d}.formatn+1 对于0范围内的i,n-1: op=np.transposeop,self.bh[i],self.ah[i+1],self.bph[i],self.aph[i+1],B op=np.transposeop,self.bv[i],self.av[i+1],self.bpv[i],self.apv[i+1],B op=np.transposeop,self.ah[0],self.av[0],self.aph[0],self.apv[0],self.arotimarixalpha op=np.transposeop,self.bh[n-1],self.bv[n-1],self.bph[n-1],self.bpv[n-1],self syms=Qrelyself.ah,self.bh,self.av,self.bv,self.aph,self.apv,self.bpv 返回符号,op 例如,当我测试代码时: A=Qrely printA.qrelay_op3,np.array[np.pi,np.pi/2,np.pi/5],np.pi/4,np.pi/3 我得到这个错误: 第693行,在names:TypeError中名称的符号中:“NoneType”对象不可编辑 我在我的代码中找不到这个非类型对象,或者我遗漏了一些东西,即使一切对我来说都很好,如果你说self.ah=symbolsprinta_H1={:d}。formatn+1是我们需要了解符号在做什么的问题

看起来symbols希望您向它传递一些可编辑的内容,但实际上您向它传递的是print函数的输出,而print函数的输出是None

试着改变

self.ah = symbols(print("a_H1={:d}".format(n + 1))) 


如果你不向我们展示失败的代码,很难帮助你…大概,名称是None而不是alist@alfasin这是我目前唯一遇到问题的代码部分,因为我已经测试了其他方法,它们正在工作,而其中的部分本身就是一个可以运行的代码,正如我在问题中所说的,只要把它放在一个类中,uuu init_uuu方法有这些实例def_uinit_uself,啊=,bh=,av=,bv=,aph=,bph=,apv=,bpv=:您询问代码行中的错误,但向我们展示了代码的不同部分。我真的不知道该说什么…@alfain错误发生在第35行,在qrelay_op self.ah=symbolsprinta_H1={:d}.formatn+1中,我刚刚做了,并试图再次运行它,但这次我得到一个类型错误:“Symbol”对象不支持索引,这次错误发生在op+=phi[I]*self.ah[I]*self.bh[I]+self.av[I]*self.bv[I]我不知道你想在这里完成什么。就语法而言,self.ah[i]试图获取self.ah的第一个元素,它是一个符号。但你不能这么做,因为这不是一个符号的工作方式。这里没有足够的代码来解决这个问题。好的,我试图从前4行中得到一个字符串列表,用空格分隔,以创建一个符号列表。这个列表的长度将是n,然后使用范围为0,n-1的I的循环来执行op+=phi[I]*self.ah[I]*self.bh[I]+self.av[I]*self.bv[I]`在aph和两者中得到一个符号列表……预期的输出类似于julia语言,我们可以这样做:啊=symbols@sprintfa_H1:%d,4,输出将是a_H1,a_H2,a_H3,a_H4output=[符号'a_H{}'。[1,2,3,4]中i的格式]
self.ah = symbols(print("a_H1={:d}".format(n + 1))) 
self.ah = symbols("a_H1={:d}".format(n + 1))