muszę wiedzieć, dlaczego to się nie powiedzie:Python krotek i list. Krotka że odmawia konwertować
class ConfigurationError(Exception):
def __init__(self, *args):
super(ConfigurationError, self).__init__(self, args)
self.args = list(args)
# Do some formatting on the message string stored in self.args[0]
self.args[0]=self.__prettyfi(self.args[0])
def __prettyfi(self, arg):
pass
# Actual function splits message at word
# boundaries at pos rfind(arg[1:78]) if len(arg) >78
# it does this by converting a whitespace char to a \n
Kiedy uruchomić kod, pojawia się następujący msg: <snip> ConfigurationError.py", line 7, in __init__ self.args[0]=self.__prettyfi(self.args[0]) TypeError: 'tuple' object does not support item assignment
I edycji linii nr. aby dopasować ten przykład kodu.
Nie rozumiem dlaczego self.args = list(args)
nie poprawnie rozpakować krotka do listy w wierszu 5.
(mam skradanie mam podejrzenie braku zapamiętać coś super-podstawowe ...)
Czy istnieje jakiś techniczny powód, dla którego jest to deskryptor? –
@ Tinctorius: Wyjątki są niezmienne, a także 'args'. Co więcej, 'Exception.args' jest udokumentowane jako krotka. –
grrrrrrrrrrrr ... dziękuję. Zgadnij źle dla pętli rozpakuj go wtedy. Chyba, że ktoś zna lepszy sposób ...? – Jase