Я написал эту функцию в своем пакете.«Неожиданное» TypeError: неожиданное ключевое слово
def partitionIntoDays(ls, number, lookupKey=None):
''' Partitions the location measurements into days.
@ls: The list of measurements you want to partition
@return: A dictionary in the format {'Number of partition':
'List of measurements'}'''
if len(ls) == 0:
return {0: []}
firstMidnight = TimeAux.localTimeToEpoch(Delorean(TimeAux.epochToLocalTime(ls[0].time, TIMEZONE)).midnight())
return splitByTimedelta(ls, delta=number*24*3600, lowerBound=firstMidnight, lookupKey=lookupKey)
Но всякий раз, когда я пытаюсь вызвать функцию из скрипта, я получаю следующее сообщение об ошибке:
TypeError: partitionIntoDays() got an unexpected keyword argument 'lookupKey'
Однако, если я импортировать функцию где-то вручную, я могу проверить, что функция имеет аргумент. Например, я могу даже сделать это, пока я отлаживаю вышеуказанную ошибку в pdb.
import geogps.Partition as pt
pt.partitionIntoDays.func_code.co_varnames
>>>>('ls', 'number', 'lookupKey', 'firstMidnight')
Также приведенный выше код отлично работает в Python 3.4. Я вкратце полностью ошеломлен.
делает 'splitByTimedelta' аргумент, называемый' lookupKey'? –
Как вы вызываете функцию partitionIntoDays в своем скрипте? – levi
'co_varnames' - это список переменных, используемых * в теле функции *. Более важным является 'co_argcount', который сообщает вам, сколько из этих имен являются аргументами. –