我有一个Python方法字典,它在一个定义中。这个def
是在类外部使用对象调用的。每当调用def
时,都会返回字典中最后一项的结果。在本例中,返回def spc_summary:
的结果。在
def setStyles(self):
# Assign function to file
functions = {
'app_server.php':self.app_server(),
'dcrm2nlyte.php':self.dcrm2nlyte(),
'export.php':self.export(),
'host_server.php':self.host_server(),
'spc.php':self.spc(),
'spc_approved.php':self.spc_approved(),
'spc_approved_by_dc.php':self.spc_approved_by_dc(),
'spc_by_dc.php':self.spc_by_dc(),
'spc_complete.php':self.spc_complete(),
'spc_summary.php':self.spc_summary()
}
filename = self.phpfile
functions.get(filename)
有人能解释一下这里发生了什么吗?如果需要更多细节,请告诉我。谢谢!在
让我补充一些细节:
functions.get(filename)
正在检索最后一个不规则的字典项文件名。我已经这样做了=>;functions('spc.php')
,它仍然返回了“def spc\u summary”的结果。而那些def的结果应该不一样。在
字典是无序的,因此迭代dict返回的最后一个对象可能不是插入dict的最后一个项
functions.get(filename)
将获取当前值filename
,并在functions
中查找。filename
从self.phpfile
获取其值,因此在您的示例中,self.phpfile
必须设置为“spc”_摘要.php'. 在你的函数dict好像做了错事。在定义dict时,您将键映射到函数结果而不是函数对象。如果将其映射到函数对象,则在调用
functions.get(filename)()
时调用该函数你的口述应该如下:
相关问题 更多 >
编程相关推荐