How does crossover work in a genetic algorithm?
As far as I know, there isn't a "specified correct way". The whole idea is that you want the population to converge and increase the sample rate in that more optimal looking place. What works best all depends upon your fitness landscape.

You could also crossover by doing something like 

crossover_point = random_number_size_genome
child[:] = parent_a[:crossover_point] + parent_b[crossover_point:]


Or have multiple points of crossover or more exotic types of crossover.
As far as I know, the impact on your algorithm because of the different crossover algorithms shouldn't be that different. 

Fitness function and how you select the fittest has a way bigger impact.
You have understood the crossover step correctly, looking at your example.