Faits:
Faits:
A. Par jugement du 8 octobre 2003, le Tribunal correctionnel de l'arrondissement de La Côte a condamné X._, pour mise en danger de la vie d'autrui, lésions corporelles avec un instrument dangereux, menaces, infraction à la loi sur les armes et contravention à l'arrêté sur les tirs, à quinze mois d'emprisonnement et a suspendu l'exécution de cette peine au profit d'un traitement psychiatrique ambulatoire.
S'agissant de la mise en danger de la vie d'autrui, qui est seule contestée, ce jugement retient ce qui suit:
Au printemps ou début de l'été 2001, X._, né en 1973, a eu une altercation avec le dénommé Y._. Le 6 juillet 2001, accompagné de trois autres personnes, Y._ a entrepris une expédition punitive à l'endroit de X._. Il s'est muni pour l'occasion d'un objet qualifié par lui de "bâton" et par les témoins de "matraque". Après avoir attendu X._ à la sortie d'un établissement public, Y._ s'est dirigé vers lui muni de son "bâton". Deux de ses compagnons marchaient légèrement en retrait. Sentant l'atmosphère tendue, X._, qui avait reconnu Y._, s'est précipité vers sa voiture, en a retiré une baïonnette qu'il a dissimulée derrière son dos, et a fait face à ses agresseurs. Remarquant que X._ cachait quelque chose dans son dos, Y._ lui a asséné un coup à la nuque. X._ a partiellement esquivé ce coup et a frappé simultanément Y._ au thorax avec sa baïonnette. Celui-ci a été blessé au poumon. Il a subi une intervention chirurgicale suivie d'une hospitalisation de quelques jours. Il ne souffre d'aucune séquelle.
Au printemps ou début de l'été 2001, X._, né en 1973, a eu une altercation avec le dénommé Y._. Le 6 juillet 2001, accompagné de trois autres personnes, Y._ a entrepris une expédition punitive à l'endroit de X._. Il s'est muni pour l'occasion d'un objet qualifié par lui de "bâton" et par les témoins de "matraque". Après avoir attendu X._ à la sortie d'un établissement public, Y._ s'est dirigé vers lui muni de son "bâton". Deux de ses compagnons marchaient légèrement en retrait. Sentant l'atmosphère tendue, X._, qui avait reconnu Y._, s'est précipité vers sa voiture, en a retiré une baïonnette qu'il a dissimulée derrière son dos, et a fait face à ses agresseurs. Remarquant que X._ cachait quelque chose dans son dos, Y._ lui a asséné un coup à la nuque. X._ a partiellement esquivé ce coup et a frappé simultanément Y._ au thorax avec sa baïonnette. Celui-ci a été blessé au poumon. Il a subi une intervention chirurgicale suivie d'une hospitalisation de quelques jours. Il ne souffre d'aucune séquelle.
B. Par arrêt du 23 février 2004, la Cour de cassation pénale du Tribunal cantonal vaudois a partiellement admis le recours de X._. Contrairement au Tribunal correctionnel, elle a admis que X._ se trouvait en état de légitime défense lorsqu'il a porté son coup de baïonnette. Elle a toutefois qualifié cette légitime défense d'excessive (<ref-law>). Statuant à nouveau, elle a condamné X._, pour les mêmes infractions que celles retenues en première instance, à six mois d'emprisonnement. Elle a confirmé au surplus le jugement du Tribunal correctionnel.
B. Par arrêt du 23 février 2004, la Cour de cassation pénale du Tribunal cantonal vaudois a partiellement admis le recours de X._. Contrairement au Tribunal correctionnel, elle a admis que X._ se trouvait en état de légitime défense lorsqu'il a porté son coup de baïonnette. Elle a toutefois qualifié cette légitime défense d'excessive (<ref-law>). Statuant à nouveau, elle a condamné X._, pour les mêmes infractions que celles retenues en première instance, à six mois d'emprisonnement. Elle a confirmé au surplus le jugement du Tribunal correctionnel.
C. X._ se pourvoit en nullité au Tribunal fédéral contre l'arrêt du 23 février 2004. Il conclut à son annulation et sollicite par ailleurs l'assistance judiciaire.
Le Ministère public vaudois conclut au rejet du pourvoi.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Saisi d'un pourvoi en nullité, le Tribunal fédéral contrôle l'application du droit fédéral (art. 269 PPF) sur la base d'un état de fait définitivement arrêté par l'autorité cantonale (cf. art. 273 al. 1 let. b et 277bis al. 1 PPF). Le raisonnement juridique doit donc être mené sur la base des faits retenus dans la décision attaquée, dont le recourant est irrecevable à s'écarter (<ref-ruling> consid. 1 p. 66/67).
Le Tribunal fédéral n'est pas lié par les motifs invoqués, mais il ne peut aller au-delà des conclusions du recourant (art. 277bis PPF). Les conclusions devant être interprétées à la lumière de leur motivation (<ref-ruling> consid. 1 p. 103), le recourant a circonscrit les points litigieux. En l'espèce, il conteste uniquement la qualification de mise en danger de la vie d'autrui (<ref-law>).
Le Tribunal fédéral n'est pas lié par les motifs invoqués, mais il ne peut aller au-delà des conclusions du recourant (art. 277bis PPF). Les conclusions devant être interprétées à la lumière de leur motivation (<ref-ruling> consid. 1 p. 103), le recourant a circonscrit les points litigieux. En l'espèce, il conteste uniquement la qualification de mise en danger de la vie d'autrui (<ref-law>).
2. 2.1 L'<ref-law> punit de la réclusion pour cinq ans au plus ou de l'emprisonnement celui qui, sans scrupules, aura mis autrui en danger de mort imminent.
Cette infraction suppose la réunion de trois éléments, à savoir la mise d'autrui dans un danger de mort imminent, la conscience de ce fait et l'absence de scrupules.
2.2 La notion de danger de mort imminent selon l'<ref-law> implique tout d'abord un danger concret, c'est-à-dire un état de fait dans lequel existe, d'après le cours ordinaire des choses, la probabilité ou un certain degré de possibilité que le bien juridique protégé soit lésé, sans toutefois qu'un degré de probabilité supérieur à 50% soit exigé. Le danger de mort imminent représente cependant plus que cela. Il est réalisé lorsque le danger de mort apparaît si probable qu'il faut être dénué de scrupule pour négliger sciemment d'en tenir compte. Quant à la notion d'imminence, elle n'est pas aisée à définir. Elle implique en tout cas, outre la probabilité sérieuse de la réalisation du danger concret, un élément d'immédiateté qui est défini moins par l'enchaînement chronologique des circonstances que par le lien de connexité directe unissant le danger et le comportement de l'auteur (<ref-ruling> consid. 2b/aa p. 70).
Selon les constatations cantonales, le recourant a porté un coup de baïonnette au thorax de son adversaire. Comme l'a observé la Cour de cassation vaudoise, un coup au thorax avec une telle arme est susceptible d'atteindre le coeur ou de causer une importante hémorragie. Une issue fatale était par conséquent hautement probable. En outre, le danger mortel ainsi créé dépendait directement du coup donné et non d'autres facteurs extérieurs. Il faut en conclure que le recourant est à l'origine d'un danger de mort concret et imminent.
2.3 Sur le plan subjectif, l'auteur doit être conscient de mettre autrui en danger de mort imminent et le faire sciemment (<ref-ruling> consid. 2d p. 75 in fine), car celui qui crée consciemment un tel danger le veut nécessairement. Peu importent à cet égard les mobiles de l'auteur. En revanche l'auteur doit refuser, même à titre éventuel, la réalisation de ce risque, sans quoi il s'agirait d'une tentative d'homicide (<ref-ruling> consid. 3 p. 165).
En l'espèce, la Cour de cassation vaudoise a constaté que le recourant avait eu conscience du risque de mort qu'il créait (cf. arrêt attaqué, p. 5). Or, déterminer ce que l'auteur sait, veut ou l'éventualité à laquelle il consent relève de l'établissement des faits (<ref-ruling> consid. 2.5 p. 276). En contestant avoir eu conscience du danger de mort, le recourant discute des faits retenus et formule ainsi une argumentation irrecevable dans un pourvoi.
2.4 L'auteur doit encore créer le danger "sans scrupules". Un acte est commis sans scrupules lorsque, compte tenu des moyens utilisés, des mobiles et de l'état de l'auteur ainsi que des autres circonstances, il apparaît comme contraire aux principes généralement admis des bonnes moeurs et de la morale. N'importe quelle mise en danger ne suffit pas, il faut qu'elle lèse gravement le sentiment moral (<ref-ruling> consid. 2a p. 108). Il faut en quelque sorte qu'elle atteigne un degré qualifié de réprobation (cf. Peter Aebersold, Basler Kommentar, Strafgesetzbuch II, 2003, <ref-law> n. 33). Plus le danger connu de l'auteur est grand et moins ses mobiles méritent attention, plus l'absence de scrupules apparaît comme évidente. Il s'agit également de savoir si les motifs de l'acte peuvent être approuvés ou être considérés comme compréhensibles, l'ampleur du danger créé étant également déterminante pour apprécier l'absence de scrupules (<ref-ruling> consid. 3 p. 165/166).
Le recourant a subi une attaque de la part de trois personnes déterminées, dont l'une était armée d'un bâton. Il s'est défendu en se munissant d'une baïonnette, qu'il a cachée dans son dos et dont il s'est servi après avoir été frappé d'un coup de bâton. Sa défense a été qualifiée de légitime mais d'excessive (<ref-law>), ce qu'il ne remet pas en cause. Il est envisageable qu'un acte commis en légitime défense excessive puisse être constitutif d'une mise en danger de la vie d'autrui au sens de l'<ref-law>. On peut songer au cas où la riposte de celui qui est attaqué est notablement disproportionnée avec le bien qu'il cherche à protéger. Ces conditions ne sont pas réalisées en l'espèce. Opposé à trois agresseurs, le recourant pouvait fortement craindre une grave atteinte à son intégrité physique. Selon les constatations cantonales, l'enchaînement des événements a été rapide et le recourant ne disposait que d'un temps de réaction restreint. Le recourant était donc exposé à subir un important préjudice et s'est trouvé contraint à une réaction immédiate. Même s'il a privilégié l'emploi par surprise de la baïonnette qu'il cachait dans son dos, il a surtout cherché à se protéger d'une agression illicite susceptible d'avoir pour lui de lourdes conséquences. Ses mobiles sont compréhensibles. En se défendant de la sorte dans les circonstances concrètes, il n'a pas agi d'une manière qui lèse gravement le sentiment moral. Par conséquent, l'autorité cantonale a violé le droit fédéral en jugeant que le recourant avait agi sans scrupules. Le grief est bien fondé.
Le recourant a subi une attaque de la part de trois personnes déterminées, dont l'une était armée d'un bâton. Il s'est défendu en se munissant d'une baïonnette, qu'il a cachée dans son dos et dont il s'est servi après avoir été frappé d'un coup de bâton. Sa défense a été qualifiée de légitime mais d'excessive (<ref-law>), ce qu'il ne remet pas en cause. Il est envisageable qu'un acte commis en légitime défense excessive puisse être constitutif d'une mise en danger de la vie d'autrui au sens de l'<ref-law>. On peut songer au cas où la riposte de celui qui est attaqué est notablement disproportionnée avec le bien qu'il cherche à protéger. Ces conditions ne sont pas réalisées en l'espèce. Opposé à trois agresseurs, le recourant pouvait fortement craindre une grave atteinte à son intégrité physique. Selon les constatations cantonales, l'enchaînement des événements a été rapide et le recourant ne disposait que d'un temps de réaction restreint. Le recourant était donc exposé à subir un important préjudice et s'est trouvé contraint à une réaction immédiate. Même s'il a privilégié l'emploi par surprise de la baïonnette qu'il cachait dans son dos, il a surtout cherché à se protéger d'une agression illicite susceptible d'avoir pour lui de lourdes conséquences. Ses mobiles sont compréhensibles. En se défendant de la sorte dans les circonstances concrètes, il n'a pas agi d'une manière qui lèse gravement le sentiment moral. Par conséquent, l'autorité cantonale a violé le droit fédéral en jugeant que le recourant avait agi sans scrupules. Le grief est bien fondé.
3. Au vu de ce qui précède, le pourvoi doit être admis, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision.
Il n'y a pas lieu de mettre des frais judiciaires à la charge du recourant et une indemnité sera allouée à son mandataire pour la procédure devant le Tribunal fédéral (art. 278 al. 3 PPF). La requête d'assistance judiciaire du recourant est ainsi sans objet.

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le pourvoi est admis, l'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
1. Le pourvoi est admis, l'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
2. Il n'est pas perçu de frais.
2. Il n'est pas perçu de frais.
3. La Caisse du Tribunal fédéral versera au mandataire du recourant une indemnité de 3'000 francs.
3. La Caisse du Tribunal fédéral versera au mandataire du recourant une indemnité de 3'000 francs.
4. Le présent arrêt est communiqué en copie au mandataire du recourant, au Ministère public du canton de Vaud et au Tribunal cantonal vaudois, Cour de cassation pénale.
Lausanne, le 26 août 2004
Au nom de la Cour de cassation pénale
du Tribunal fédéral suisse
Le président: Le greffier: