Следующий код
def score_track(details, result_details, top_score=200):
if top_score < 120:
# do smth
return None
работает в Python 2, но вызывает исключение в Python 3:
Traceback (most recent call last):
File "function.py", line 280, in <module>
search_result.get('score'))
File "ImportList.py", line 131, in score_track
if top_score < 120:
TypeError: '<' not supported between instances of 'NoneType' and 'int'
Если я инициализирую top_score
явно, он работает нормально.
score_track
функция вызывается так:
add_song(details,score_track(details,details))
search_result
список строится так:
search_results = []
dlog('search details: '+str(details))
lib_album_match = False
if details['artist'] and details['title'] and search_personal_library:
lib_results = [item for item in library if s_in_s(details['artist'],item.get('artist')) and s_in_s(details['title'],item.get('title'))]
dlog('lib search results: '+str(len(lib_results)))
for result in lib_results:
if s_in_s(result['album'],details['album']):
lib_album_match = True
item = {}
item[u'track'] = result
item[u'score'] = 200
search_results.append(item)
Что не так?Я не нашел никакой информации о различном поведении значений параметров по умолчанию в Python3 и Python2.