Quelle est la bonne façon de faire une vérification d'erreur dans une classe? Élever des exceptions? Définition d'un dictionnaire de variables d'instance "errors" contenant toutes les erreurs et le renvoyant?Façon correcte en Python pour élever les erreurs lors de la définition des variables
Est-il mauvais d'imprimer des erreurs d'une classe? Dois-je retourner False si je déclenche une exception?
Je veux juste m'assurer que je fais les choses correctement. Ci-dessous un exemple de code:
@property
def password(self):
return self._password
@password.setter
def password(self,password):
# Check that password has been completed
try:
# Check that password has a length of 6 characters
if (len(password) < 6):
raise NameError('Your password must be greater \
than 6 characters')
except NameError:
print 'Please choose a password'
return False
except TypeError:
print 'Please choose a password'
return False
#Set the password
self._password = password
#Encrypt the password
password_md5 = md5.new()
password_md5.update(password)
self._password_md5 = password_md5.hexdigest()
Trop de choses nommées 'mot de passe 'dans ce code. (la première fonction, la deuxième fonction, et l'argument de la deuxième fonction.) pyflakes sera votre ami. – keturn
@keturn: il s'agit d'un modèle affiché dans la docs pour la fonction 'property()'. Regardez l'exemple de code dans les documents qui utilisent le décorateur '.setter' (https://docs.python.org/3/library/functions.html#property). A l'intérieur de la méthode setter, le mot de passe est une variable locale (paramètre). Les autres noms sont dans un espace de noms différent (ils appartiennent à la classe). – jfs