назначить несколько экземпляров класса для переменных - PullRequest
2 голосов
/ 19 февраля 2010

Python. Мне нужно назначить несколько экземпляров класса на количество переменных. Сначала я попробовал это:

a = b = c = []

но все они относятся к одному и тому же объекту, а это не то, что мне нужно. Это работает лучше:

(a, b, c) = [[] for i in range(3)]

но это кажется слишком многословным. Есть ли более короткий способ сделать это?

ОБНОВЛЕНИЕ: ОК, так что на самом деле это не Pythonic, чтобы втиснуть все в одну строку, вопрос решен.

Но если бы это сработало, было бы здорово:

a,b,c = []*3

И эта строка создает три ссылки на один и тот же объект:

a,b,c = [[]] * 3

Ну да ладно ...

Ответы [ 3 ]

9 голосов
/ 19 февраля 2010
a, b, c = [], [], []
8 голосов
/ 19 февраля 2010

просто:

a = []
b = []
c = []

(python не является Perl, нет необходимости в однострочниках)

0 голосов
/ 19 февраля 2010
a = []
b = a[:]
import copy
c = copy.copy(b)

Вы можете использовать их, если хотите, чтобы они были инициализированы чем-то отличным от []

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...