Закрытие Python, ошибка области видимости локальной переменной

Моя функция бросить меня сlocal variable 'pt' referenced before assignment ошибка:

Traceback (most recent call last):
  File "/home/solesschong/Workspace/PenPal/python/main.py", line 126, in callback
    ind = (i+pt) % n
UnboundLocalError: local variable 'pt' referenced before assignment

код выглядит следующим образом

def get_audio_callback(pt):

    def callback(in_data, frame_count, time_info, status):

        for i in range(frame_count):
            ind = (i+pt) % n

        return (a, b)

    return callback

и в глобальном масштабе,

pt = 0
stream = p.open(stream_callback=get_audio_callback(pt))

Я не могу понять, почему возникает ошибка, так как я проверил некоторые примеры на закрытие и не нашел никакой разницы.

редактировать

Причина, по которой вы не можете воспроизвести ошибку, может быть из-за чрезмерного упрощения, как упомянуто @Martijn Pieters. Отсюда и оригинальный код.

Далее я решил эту проблему, перейдя по ссылке, пожалуйста, смотрите мой собственный ответ.

"""
Sound API
"""
def get_audio_callback(pt):

    def callback(in_data, frame_count, time_info, status):
        """
        This is the callback function for sound API
        In each call, synthesized data is dumpped into the sound buffer
        """        

        wave = np.ndarray((frame_count, 2))
        for i in range(frame_count):
            ind = (i+pt) % n
            wave[i,0] = float(x[ind]) * 2
            wave[i,1] = float(y[ind]) * 2
        pt = pt + frame_count

        return (encode(wave), pyaudio.paContinue)

    return callback


p = pyaudio.PyAudio()
pt = 0

stream = p.open(format=pyaudio.paFloat32,
                channels=2,
                rate=RATE,
                output=True,
                stream_callback=get_audio_callback(pt))

Ответы на вопрос(2)

Ваш ответ на вопрос