В Python вы не создаете прототип как таковой, но вам нужно понять разницу между атрибутами класса и атрибутами уровня экземпляра. В примере, который вы показали выше, вы объявляете атрибут класса в классе B, а не атрибут уровня экземпляра.
Это то, что вы ищете:
class B():
def __init__(self):
self.c = C()