Cómo convertir una cadena que representa una fracción binaria en un número en Python

Supongamos que tenemos una cadena que representa una fracción binaria como:

".1"

Como número decimal esto es 0.5. ¿Existe una forma estándar en Python para pasar de tales cadenas a un tipo de número (ya sea binario o decimal no es estrictamente importante).

Para un entero, la solución es sencilla:

int("101", 2)
>>>5

int () toma un segundo argumento opcional para proporcionar la base, pero float () no lo hace.

Estoy buscando algo funcionalmente equivalente (creo) a esto:

def frac_bin_str_to_float(num):
    """Assuming num to be a string representing
    the fractional part of a binary number with
    no integer part, return num as a float."""
    result = 0
    ex = 2.0
    for c in num:
        if c == '1':
            result += 1/ex 
        ex *= 2
    return result

I pensar eso hace lo que quiero, aunque es posible que haya perdido algunos casos de vanguardia.

¿Existe un método incorporado o estándar para hacer esto en Python?

Respuestas a la pregunta(2)

Su respuesta a la pregunta