Risposte:
I valori degli argomenti predefiniti vengono valutati al momento della definizione della funzione, ma self
è un argomento disponibile solo al momento della chiamata della funzione. Pertanto gli argomenti nell'elenco degli argomenti non possono riferirsi l'un l'altro.
È un modello comune per impostare un argomento su predefinito None
e aggiungere un test per quello nel codice:
def p(self, b=None):
if b is None:
b = self.a
print b
Se sei arrivato qui tramite google, assicurati di aver dato self come primo parametro di una funzione di classe. Soprattutto se si tenta di fare riferimento a valori per quell'oggetto all'interno della funzione.
def foo():
print(self.bar)
> NameError: il nome 'self' non è definito
def foo(self):
print(self.bar)