Faits: A. Par ordonnance mixte du 30 juillet 2009, le Juge d'instruction de l'arrondissement de Lausanne a condamné X._, pour violence ou menace contre les autorités et les fonctionnaires (art. 285 ch. 1 CP), à trente jours-amende de 50 fr., avec sursis pendant trois ans, et renoncé à révoquer le sursis dont était assortie une peine de vingt jours d'emprisonnement prononcée contre elle le 20 septembre 2005 pour lésions corporelles simples. En revanche, il a mis X._ au bénéfice d'un non-lieu sur la prévention d'infraction à la loi fédérale sur les stupéfiants, qu'aucun élément de l'enquête n'avait corroborée. B. X._ ayant formé opposition contre sa condamnation, elle a été renvoyée, comme accusée de violence ou menace contre les autorités et les fonctionnaires, devant le Tribunal de police de l'arrondissement de Lausanne. En phase préliminaire puis aux débats, elle a requis l'assistance d'un défenseur d'office. Cette requête a été rejetée. Par jugement du 16 décembre 2009, le tribunal l'a reconnue coupable de violence ou menace contre les autorités et les fonctionnaires, révoqué le sursis dont était assortie la condamnation du 20 septembre 2005 et fixé la peine d'ensemble à cinquante jours-amende de 10 francs, ferme. C. Sur recours personnel de la condamnée, la Cour de cassation pénale du Tribunal cantonal du canton de Vaud a confirmé ce jugement par un arrêt du 25 janvier 2010. D. X._ recourt au Tribunal fédéral contre cet arrêt. Elle conclut à son annulation ainsi qu'à celle du jugement de première instance. Au titre de l'assistance judiciaire, elle demande à être pourvue d'un avocat d'office devant le Tribunal fédéral et à être dispensée des frais de justice. La cour cantonale et le ministère public ont renoncé à se déterminer.