Select Git revision
C-devtools.md
Forked from an inaccessible project.
-
Thomas Fritsch authored
mise en forme
Thomas Fritsch authoredmise en forme
etudiant.py 2.78 KiB
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
:author: FIL - FST - Univ. Lille.fr <http://portail.fil.univ-lille.fr>_
:date: janvier 2019
:last revised:
:Fournit :
"""
from date import Date
class Etudiant:
"""
une classe représentant des étudiants.
$$$ etu = Etudiant(314159, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')
$$$ str(etu)
'Tim Oléon'
$$$ repr(etu)
"Etudiant(314159, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')"
$$$ etu.prenom
'Tim'
$$$ etu.nip
314159
$$$ etu.nom
'Oléon'
$$$ etu.formation
'MI'
$$$ etu.groupe
'15'
$$$ etu2 = Etudiant(314159, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')
$$$ etu == etu2
True
$$$ etu3 = Etudiant(141442, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')
$$$ etu == etu3
False
$$$ etu4 = Etudiant(141442, 'Calbuth', 'Raymond', Date(2, 1, 2005), 'MI', '11')
$$$ etu < etu4
True
$$$ isinstance(etu.naissance, Date)
True
"""
from date import Date
def __init__(self, nip: int, nom, prenom,
naissance: Date, formation: str, groupe: str):
"""
initialise un nouvel étudiant à partir de son nip, son nom, son
prénom, sa formation et son groupe.
précondition : le nip, le nom et le prénom ne peuvent être nuls ou vides.
"""
self.nip = nip
self.nom = nom
self.prenom = prenom
self.naissance = naissance
self.formation = formation
self.groupe = groupe
def __eq__(self, etudiant) -> bool:
"""
Renvoie True ssi other est un étudiant ayant :
- même nip,
- même nom et
- même prénom que `self`,
et False sinon.
"""
if isinstance(etudiant,Etudiant):
return etudiant.nom == self.nom and self.prenom==etudiant.prenom and self.nip == etudiant.nip
def __lt__(self, other) -> bool:
"""
Renvoie True si self est né avant other
"""
if not (self.prenom < other.prenom and self.nom < other.nom and (self.Date < other.Date) and (self.naissance < other.naissance) and (self.nip < other.nip) and (self.formation < other.formation)):
return True
return False
def __str__(self) -> str:
"""
Renvoie une représentation textuelle de self pour impression.
"""
return f"{self.prenom} {self.nom}"
def __repr__(self) -> str:
"""
Renvoie une représentation textuelle interne de self pour le shell.
"""
return f"Etudiant({self.nip}, '{self.nom}', '{self.prenom}', {repr(self.naissance)}, '{self.formation}', '{self.groupe}')"
if (__name__ == "__main__"):
import apl1test
apl1test.testmod('etudiant.py')