我只想在获取for中的项时使用该方法。 但是,当cicle启动时,所有方法都被调用。 我试过使用dict[key](函数参数),但我不知道参数 在cicle的最后一部分
class Func():
def LD(self,r,r2):
self.reg[str(r)]=self.reg[str(r2)]
self.cic[0]=self.cic[0]+4
self.cic[1]=self.cic[1]+1
self.cic[2]=self.cic[2]+1
print 'LD '+str(r)+','+str(r2)
class Data(Func):
reg={'A':0,'B':0,'C':12,'D':0,'E':0,'H':0,'L':0,'F':0,'IX':0,'IY':0}
cic=[0,0,0]
Dat=Data()
LI={'C':Dat.LD('A','B'),'D':Dat.LD('A','C')}
LD={'A':Dat.LD('D','E'),'B':Dat.LD('D','F')}
L={'1':LD,'2':LI}
Cod=['1A','2D']
cont=0
for temp in L:
if Cod[0] in temp:
if Cod[1] in temp[cod[0]]:
temp[cod[0]].get(cod[1])
你的问题是,你不是一开始就把方法放到字典里,而是调用方法,把结果放到字典里。例如:
这将立即调用
Dat.LD('A', 'B')
,并使其成为'C'
键的值这正是^{} 函数的作用。正如医生所说:
因此,对于您的问题,您需要一个行为类似于
Dat.LD
方法的新对象,但其中的参数已经“冻结”为'A', 'B'
:或者,您也可以使用
def
或lambda
显式创建一个新函数来包装方法调用:相关问题 更多 >
编程相关推荐