Error de parámetro de clase Python "ya definido", ¿por qué?
Los parámetros reales son los parámetros pasados al llamar a la función. Los parámetros formales son parámetros escritos en el momento de la declaración. Puede que no entiendas su significado
Tu error es que tu port_no está declarado en la función __init__, y la declaración de atributos de las clases de Python es muy arbitraria
Pero type_ip, etc. Se crean propiedades antes de __init__, de hecho, ya existen antes de que crees cualquier instancia de la clase.
Obviamente no has llamado a __init__ todavía, por lo que port_no no existe.
Sugerencias de modificación:
Crear atributos como type_ip en __init__
PD:
Creo que el __init__( en la función create_sw self , port_no) es un error tipográfico y no tiene sentido.