Python: удобный способ инициализации множества членов класса - PullRequest
1 голос
/ 21 апреля 2011

Если у меня есть много переменных класса для инициализации, любой способ сократить использование «self».?То есть вместо того, чтобы делать:

self.variable1 = 1
self.variable2 = 10
self.variable3 = "hello"
etc.

, можно ли сделать какой-нибудь ярлык, например:

with self: 
    variable1 = 1
    variable2 = 2
    variable3 = 'hello'

Просто подумал, что могу сэкономить на наборе текста, если это возможно.Кстати, при вставке фрагментов кода здесь есть способ сделать отступ целому блоку.Я считаю, что выбор целого блока, а затем нажатие на вкладку не работает.

Ответы [ 3 ]

3 голосов
/ 21 апреля 2011

Есть способы сделать это, но я бы не стал их предлагать. Это ухудшает читабельность.

2 голосов
/ 21 апреля 2011

Если вы действительно хотите это сделать, вот способ:

self.__dict__.update(
    variable1 = 1,
    variable2 = 2,
    variable3 = 'hello')

Я бы просто набрал self или использовал копирование и вставку в моем редакторе.

0 голосов
/ 21 апреля 2011

Еще одна альтернатива, просто для удовольствия:

myvars = { 'variable1': 1,
           'variable2': 10,
           'variable3': "Hello" }

for name, value in myvars.iteritems():
    setattr(self, name, value)
...