Mi sono chiesto da un po 'se esiste un modo più semplice per assegnare gli attributi di classe al metodo spazio dei nomi locale. Per esempio, in dosomething
metodo, ho esplicitamente fare riferimenti a self.a
e self.b
:Python che importa gli attributi di classe nel namespace del metodo locale
class test:
def __init__(self):
self.a = 10
self.b = 20
def dosomething(self):
a = self.a
b = self.b
return(a + b)
Ma a volte ho un sacco di variabili (più di 10) e diventa disordinato di digitare e guardare - avrei grappolo delle istruzioni var = self.var
all'inizio di un metodo.
C'è un modo per farlo in modo più compatto? (So che l'aggiornamento local()
non è una buona idea)
Edit: Idealmente, quello che voglio è:
def dosomething(self):
populate_local_namespace('a', 'b')
return(a + b)
Perché stai provando a fare questo in primo luogo?Cosa c'è di sbagliato nell'avere un metodo 'dosomething' a una riga che assomiglia a" return (self.a + self.b) '"? Quale beneficio ti aspetti di ottenere da questo? – rmunn
Ho le mie ragioni - in particolare, sto facendo calcoli complessi e molti "self" rendono le espressioni molto lunghe e brutte. – joon