I think you should either:

1. Continue letting the caller change the mode if he wants to, e.g. change this to:

    ``` python
    self._mode = kwargs.get('mode', alsaaudio.PCM_NONBLOCK)
    ````

2. Or, inline `self._mode` in the call to `alsaaudio.PCM()`, as that's the only place the variable is used now.