Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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 为什么我的方法只影响方法内部的类?_Python_Class_Methods - Fatal编程技术网

Python 为什么我的方法只影响方法内部的类?

Python 为什么我的方法只影响方法内部的类?,python,class,methods,Python,Class,Methods,我有几个类彼此使用:车道是方向的属性,方向是图表的属性。 这是Diagram类中的一个方法,它假定将信息从列表(phsr_lst)推送到Diagram->Directions->Lanes。 当我在setattr()之后使用getattr(key_lan,cur_arrow)打印我推送的数据时,我得到了正确的数据,但是当在方法外部打印时,它显示为好像没有任何更改。 当我检查方法内部和外部的内存地址时,我得到了不同的地址 这并不是我拥有的唯一一个做同样事情的方法——而且有效,尽管我在其他方法上也有

我有几个类彼此使用:车道是方向的属性,方向是图表的属性。 这是Diagram类中的一个方法,它假定将信息从列表(phsr_lst)推送到Diagram->Directions->Lanes。 当我在setattr()之后使用getattr(key_lan,cur_arrow)打印我推送的数据时,我得到了正确的数据,但是当在方法外部打印时,它显示为好像没有任何更改。 当我检查方法内部和外部的内存地址时,我得到了不同的地址


这并不是我拥有的唯一一个做同样事情的方法——而且有效,尽管我在其他方法上也有同样的问题。老实说,我不知道我是如何在其他单元格上解决这个问题的问题是我试图将setasttr()与特定单元格一起使用(在我遇到的其他问题和错误中…) 为了修复它,我创建了数组,然后对整个数组而不是特定的单元格使用setattr()。 这是一个新功能,具有以下更改:

def推送arr2(自):
arr_list=[self.phsr_lst[2],self.phsr_lst[5]]
SR_cur_arrow_输入=[0,0]
原始车道=[“R”、“TR”、“T”、“TL”、“L”、“A”、“RL”]
方向=[self.NO.LAN,self.SO.LAN,self.EA.LAN,self.WE.LAN]
对于方向上的direc:
对于原始车道中的lan:
如果arr_列表[0]:
当前箭头输入=[arr_列表[0][0],arr_列表[1][0]]
如果lan==“R”和arr_列表[0][0]==9:
SR_cur_arrow_输入=[0,0]
SR\u cur\u arrow\u输入[0]=1
当前箭头输入[0]=0
如果lan==“R”和arr_列表[1][0]==9:
SR\u cur\u arrow\u输入[1]=1
当前箭头输入[1]=0
setattr(直接、局域网、电流箭头输入)
setattr(指令,“SR”,SR当前箭头输入)
arr_列表[0]。pop(0)
arr_列表[1]。pop(0)
self.phsr_lst[12]=[]
self.phsr_lst[15]=[]

如果你发布人们可以简单复制/粘贴/运行的代码,你会得到更多帮助,请看一下。