2015-10-25 2 views
4

Я прошел через все эти вопросы,Python инициализировать несколько переменных того же начального значения

  1. Python assigning multiple variables to same value? list behavior
    касается кортежей, я хочу только переменные могут быть строка, целое число или словарь
  2. More elegant way of declaring multiple variables at the same time
    Вопрос имеет что-то, что я хочу задать, но принятый ответ очень сложный

так, что я пытаюсь достичь,

У меня есть эти переменные, объявленные, и я хочу, чтобы уменьшить эти заявления как меньше строки кода, как это возможно.

details = None 
product_base = None 
product_identity = None 
category_string = None 
store_id = None 
image_hash = None 
image_link_mask = None 
results = None 
abort = False 
data = {} 

Что такое простейший, простой в обслуживании?

+0

Вы бы использовать словарь. – vaultah

+0

thats complex, мне бы пришлось называть 'dicitonary ['details']' и 'KeyErrors' suck., Плюс ides не будут выделять недопустимые ключи, а переменные. Если мне нужно использовать 'details = dicitonary ['details']', я бы лучше использовал 'details = None', чем это круглые создания, поисковые запросы и KeyErrors. – Rivadiz

+0

Как вы определяете комплекс? – CrakC

ответ

9

Я согласен с другими ответами, но хотел бы объяснить здесь важный момент.

Отсутствует Объект Singleton объект. Сколько раз вы назначаете объект None объекту переменной, тот же объект используется. Так

x = None 
y = None 

равно

x = y = None 

, но вы не должны делать то же самое с любым другим объектом в Python. Например,

x = {} # each time a dict object is created 
y = {} 

не равна

x = y = {} # same dict object assigned to x ,y. We should not do this. 
3

details, producy_base, product_identity, category_string, store_id, image_hash, image_link_mask, results = None, None, None, None, None, None, None, None; abort = False; data = {}

Вот как я это делаю.

13

Прежде всего, я бы посоветовал вам не делать этого. Это нечитабельно и непитоноязычное. Однако вы можете уменьшить количество строк с чем-то вроде:

details, product_base, product_identity, category_string, store_id, image_hash, image_link_mask, results = [None] * 8 
abort = False 
data = {} 
Смежные вопросы