Как сделать неопределённое наследование в python?
Вообще сама необходимость в таком коде уже признак серьёзных проблем.
Но если очень надо... В питоне классы - это объекты первой категории. С ними можно делать всё то же, что и с другими объектами, например, возвращать их из функций. Так что незачем возиться с class_name.
Есть вот такой вариант решения через метаклассы:
import inspect

my_dog_age = 7


class SmallDog:
    pass


class MiddleDog:
    pass


class BigDog:
    pass


class DogMeta(type):
    def __new__(mcs, name, bases, namespace):

        dog = SmallDog
        if my_dog_age >= 10:
            dog = BigDog
        elif my_dog_age >= 5:
            dog = MiddleDog

        return super().__new__(mcs, name, (dog,), namespace)


class Dog(metaclass=DogMeta):
    pass


class MyDog(Dog):
    pass


print(inspect.getmro(MyDog))