У меня есть словарь методов в Python, который находится внутри определения. Этот def
вызывается вне класса с использованием объекта. Всякий раз, когда вызывается def
, я возвращаю результаты последнего элемента в словаре. В этом случае мне возвращаются результаты def spc_summary:
.Как получить значения словаря в Python?
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_summary '. И эти def должны не иметь одинаковых результатов.
Какова цель словаря 'functions'? Вы пытаетесь вызвать функцию, чье имя хранится внутри 'phpfile'? – hochl
Строки '' spc_summary.php: self.spc_summary() должны быть без таких символов, как '' spc_summary.php ': self.spc_summary' и в 'functions.get (filename)' вы должны использовать 'functions.get (filename)() ' –
Да, вы эффективно вызываете все эти функции-члены при построении словаря ** при каждом вызове метода **. – hochl