Если вы используете Python 3, вы можете достичь этого с помощью оператора nonlocal :
def sort_priority(values, group):
sorted = 'False'
def helper(x):
nonlocal sorted
if x in group:
sorted = 'True'
return (0, x)
else:
return (1, x)
values.sort(key=helper)
return sorted
Это позволяет изменять переменную sorted
во внешней области видимости внутренней областью вспомогательной функции, поэтому sort_priority
вернет "True"
.
Если вы используете Python 2, оператор nonlocal
недоступен, но может быть достигнуто нечто подобное, например:
def sort_priority(values, group):
nonlocals = {'sorted': 'False'}
def helper(x):
if x in group:
nonlocals['sorted'] = 'True'
return (0, x)
else:
return (1, x)
values.sort(key=helper)
return nonlocals['sorted']