Two different "rxpath" in one top_block, how to switch between them when the program is running?

hi all,
recently, i want to put two different “rxpath” in one top_block, and
switch them when the program is running, but i failed :

class my_top_block(gr.top_block):
def init(self, …):
gr.top_block.init(self)

   self.txpath = usrp_transmit_path.usrp_transmit_path(.....)
   self.rxpath = usrp_receive_path.usrp_receive_path(.....)

   self.connect(self.rxpath)
   self.connect(self.txpath)


if(…):
tb.rxpath = usrp_another_rxpath(…) # usrp_receive_path() and
usrp_another_rxpath have completely different blocks connected but the
same “usrp_souce”
it seems that the “rxpath” can not be changed when the top_block is
running, or maybe i did it in a wrong way, could anyone tell me how to
do it right?( how and when to switch the two rxpath?)

any help will be appreciated!

sincerely,
shanki