Jaki jest właściwy sposób sprawdzania błędów w klasie? Zgłaszanie wyjątków? Ustawienie "błędów" słownika zmiennych instancji zawierającego wszystkie błędy i zwrócenie ich?Właściwy sposób w języku Python do zgłaszania błędów podczas ustawiania zmiennych
Czy źle wydrukować błędy z zajęć? Czy muszę zwracać Fałsz, jeśli zgłaszam wyjątek?
Chcę się tylko upewnić, że wszystko dobrze. Poniżej znajduje się przykładowy kod:
@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()
Zbyt wiele rzeczy o nazwie "hasło" w tym kodzie. (pierwsza funkcja, druga funkcja i argument do drugiej funkcji.) pyflakes będą twoim przyjacielem. – keturn
@keturn: jest to wzorzec pokazany w dokumentach dla funkcji 'property()'. Spójrz na [przykład kodu w dokumentach, które używają '.setter' decorator] (https://docs.python.org/3/library/functions.html#property). Wewnątrz metody ustawiającej "password" jest zmienną lokalną (parametr). Inne nazwy znajdują się w innym obszarze nazw (należą do klasy). – jfs