python - Local variable referenced before assignment inside function -
i'm sorry if seems stupid. code results in error: unboundlocalerror: local variable 'current_order' referenced before assignment, in first line of second 'for' loop. error fixed if declare current_order global variable; however, still can't understand why have this. haven't created variable in first loop? (by way, conditional in first loop guaranteed return true not issue). many thanks
def choose_pitch_from_order(current_pitch, direction, pitches_in_play, chomp_key): pitch in all_pitches: if current_pitch == pitch.name: current_order = pitch.order in current_order: pitch in pitches_in_play: if pitch.index == i: next_set = pitch pitches_in_play.remove(next_set) return (next_set, direction, chomp_key)
it seem condition inside first loop not execute, because current_pitch
not equal pitch.name
@ point, current_order
never assigned. if case, you'll want define current_order
outside default value, code not fail.
def choose_pitch_from_order(current_pitch, direction, pitches_in_play, chomp_key): current_order = [] # default value, declaration outside loop/condition ...
remember default value must sort of iterable (list, tuple, set, or other iterable), otherwise typeerror
thrown @ second loop.
Comments
Post a Comment