Python regreso fuera de función

Recibo un error de syntax en Python, el error:

SyntaxError: 'return' outside function 

Eso parece bastante autoexplicativo pero, por lo que puedo ver, el retorno está dentro de una función.

Aquí está mi código:

 def getLinks(self, url, fandom, soup): links = [] searchElementDict = { 'aff':'select', 'fcwd':'select', 'ffn':'select', 'tthm':'select', 'lua':'select', 'ffa':'select', 'hpfd':'select', 'phns':'select', 'mbba':'div', 'avgf':'div', 'mugn':'select', 'hpffa':'select', 'hpff':'select', } if fandom in searchElementDict: searchElement = searchElementDict[fandom] searchElementForDict = { 'aff':'name', 'fcwd':'name', 'ffn':'title', 'tthm':'name', 'lua':'class', 'ffa':'class', 'hpfd':'name', 'phns':'name', 'mbba':'id', 'avgf':'id', 'mugn':'name', 'hpffa':'name', 'hppf':'name', } if fandom in searchElementForDict: searchElementFor = searchElementForDict[fandom] withValueDict = { 'aff':'chapnav', 'fcwd':'goto', 'ffn':'Chapter Navigation', 'tthm':'chapnav', 'lua':'textbox', 'ffa':'locationSelect', 'hpfd':'sid', 'phns':'chao', 'mbba':'mibba-layout-parts', 'avgf':'chapters', 'mugn':'chapter', 'hpffa':'chapter', 'hpff':'chapterid', } if fandom in withValueDict: withValue = withValueDict[fandom] try: if fandom == 'mbba' or fandom == 'avgf': chapterGroup = soup.find(searchElement, attrs={searchElementFor : withValue}) individualChapters = chapterGroup.findAll('a') for each in individualChapters: chapterLink = each['href'] links.append(chapterLink) else: chapterGroup = soup.find(searchElement, attrs={searchElementFor : withValue}) individualChapters = chapterGroup.findAll('option', attrs={'value=':''}) for each in individualChapters: chapterLink = each.get('value') links.append(chapterLink) if fandom == 'fcwd': del links[0] elif fandom == 'hpfd' or fandom == 'hpff': del links[0] del links[0] except: links.append(1) return links 

Obviamente me estoy perdiendo algo, simplemente no puedo entender qué .

Sospecho que está mezclando tabulaciones y espacios … su def tiene 4 espacios que la preceden, posteriormente está usando varias tabs para la sangría.

PEP 8 recomienda el uso de ( 4 ) espacios sobre las tabs .

También tenga en cuenta lo siguiente de PEP 8:

Python 3 no permite mezclar el uso de tabulaciones y espacios para la sangría.

El código Python 2 sangrado con una combinación de tabulaciones y espacios debe convertirse en espacios exclusivamente.

Cuando se invoca al intérprete de línea de comandos de Python 2 con la opción -t, emite advertencias sobre el código que mezcla ilegalmente tabulaciones y espacios. Al usar -tt estas advertencias se convierten en errores. Estas opciones son muy recomendables!