Как найти аргумент функции функции, вызывающей функцию callback
, из callback
?(python) Поиск аргумента родительской функции из обратного вызова
Приведенный ниже код (неполный) инициирует поток аудио, который вызывает функцию обратного вызова. Он использует pyaudio.
Прямо сейчас в функции callback
есть жестко закодированные вещи. Я пытаюсь избавиться от них.
Я прочитал документ pyaudio и, похоже, не могу передать дополнительные аргументы функции callback
. Я читал о модуле python inspect
, его getsource
или getouterframes
, который, казалось, был интересен для меня, чтобы надеяться получить аргумент, заданный функции PlayStream
, но это никуда не привело.
Как я могу ссылаться на аргумент SoundGeneratorObject
с точностью до callback
?
спасибо.
def PlayStream(SoundGeneratorObject):
p = pyaudio.PyAudio()
stream = p.open(format = p.get_format_from_width(SoundGeneratorObject.WIDTH),
channels = SoundGeneratorObject.CHANNELS,
rate = SoundGeneratorObject.BITRATE,
frames_per_buffer = SoundGeneratorObject.CHUNKSIZE,
output = True,
stream_callback = callback)
stream.start_stream()
while stream.is_active():
time.sleep(0.1)
stream.stop_stream()
stream.close()
p.terminate()
def callback(in_data, frame_count, time_info, status_flags):
signal = waves.next()
return (signal, pyaudio.paContinue)
waves = SoundGenerator()
PlayStream(waves)
Рассматривали ли вы назвать 'SoundgeneratorObje ct' -> 'sound_generator_object', когда это аргумент? Я там смутился :) –
ha, хорошо, сделаю - новичок программист здесь! спасибо за подсказку – grabaldam
Вы можете выбрать любое соглашение, пока вы ** держите ** его и не меняете назад и вперед :) –