Python 在函数之间传递None变量

Python 在函数之间传递None变量,python,function,python-3.x,Python,Function,Python 3.x,我基于sounddevice playrec()创建了一个播放和录制功能 见: 它们使用以下输入参数的方法 def playrec(data, samplerate=None, channels=None, dtype=None, out=None, input_mapping=None, output_mapping=None, blocking=False, **kwargs): 所以我想做同样的事情,把一些变量传递给默认函数 比如: 结果是

我基于sounddevice playrec()创建了一个播放和录制功能

见:

它们使用以下输入参数的方法

def playrec(data, samplerate=None, channels=None, dtype=None,
            out=None, input_mapping=None, output_mapping=None, blocking=False,
            **kwargs):
所以我想做同样的事情,把一些变量传递给默认函数 比如:

结果是此功能中断(它不播放和录制任何声音)。
我没有得到一个错误。。。所以我测试了我在哪里休息,我发现了。函数启动前一行,一切正常。
spyder也不显示
None

所以我认为这与通过传递输入值有关

如果这些变量不是空的,我如何传递它们

  • 方法或模块
如果一个类似的问题都准备好了,我搜索了,但不知道正确的关键字


提前感谢

让我将我的评论表述为一个答案(有保留,因为我无法测试您的代码):

  • 确保您的数据实际上是一个波形,而不仅仅是一个常量数组 价值观我怀疑你忘了在三角函数的参数中加入
    t

  • sd.playrc
    调用的最后一个参数应该是
    **kwargs
    ,而不仅仅是
    kwargs


  • 在注释之后,我的脚本中使用的方法似乎没有错。。。这可能是一个与python sounddevice相关的问题。 在PythonSoundDevice的github页面上,我看到关于同一主题可能存在相关问题…


    所以现在我不能再进一步了,但至少我有一个答案…

    你所做的就是定义一个函数。问题是什么?你说的“中断”是什么意思?它不播放/录制声音-它什么都不做。那么,你是如何调用该函数的?您提供了一些源代码的链接,但没有提供示例。示例现在应该可以工作了。@Jan Bert您发布的代码看起来应该工作得很好。如果它不录制声音(或者确实不做任何事情),那是因为您没有发布在任何时候实际调用该函数的位置。因此,我假设您不调用任何函数,这就是它不工作的原因。cricket_007曾多次提到这一点,但我还没有看到你解决这些问题。
    import numpy as np
    T = 10
    fs = 44100
    t =  np.arange(10*fs)
    x = np.sin(2*np.pi* 440*t) + 0.5*np.sin(2*np.pi* 880*t) + 0.25 * np.sin(2*np.pi* 1320*t)
    
    rec1 = customplayrec(x.T, fs, input_channels=2, output_channels=2, repeats=3)
    
    def customplayrec(data, samplerate=None, input_channels=None, output_channels=None,
               repeats=None, l0=None, cascade=False, dtype=None, out=None,
               input_mapping=None, output_mapping=None, blocking=False, **kwargs):
        import sounddevice as sd  
        #... filter some variables
        record = sd.playrec(data, samplerate, input_channels, dtype, out,
                            input_mapping, output_mapping, blocking, kwargs)
        #... do something with data...
        return(record)