2016-03-16 2 views
3

Im использует PyCharm для написания автоматических тестов для API. PyCharm highligts одну строку в моих тестах, и предлагает This dictionary could be written as dictionary litteral.Нечеткое предложение IDE

def test_get_products_combination_2(self): 
    """ 
    TC-586:GET Products - combination 2 valid 
    """ 
    params = {} # <--- this line is highlighted with the message above 
    params["start_at_document"] = "100" 
    params["document_limit"] = "2" 
    path = "/v1/users/%s/products" % self.user_id 
    r = self.client.request(path, params) 
    self.assertEqual(r.status_code, 200) 

Есть Чем лучше «стиль», чтобы сделать это, чтобы сделать это сообщение пропадают?

ответ

3

Если изменить params в словарь буквальным он должен исправить предупреждение:

params = { 
    "start_at_document": "100", 
    "document_limit": "2" 
} 
+0

вы думаете, это лучший стиль, чтобы сделать это? – raitisd

+0

Я лично считаю этот стиль более удобочитаемым. Если вам не нравится предупреждение, возможно, в PyCharm есть возможность отключить его. – niemmi

+0

@Raituha: Использование такого литерала, как это, является более подробным и выглядит более чистым, чем ваш код. Кроме того, словарь создается один раз, до выполнения, когда определение функции компилируется в байтовый код, что более эффективно, чем повторное создание его каждый раз, когда вы вызываете функцию, что и делает ваш код. –

2

PyCharm фактически поддерживает этот рефакторинг прямо из коробки. Просто перейдите по предупреждающей строке, затем нажмите Alt + ; появится всплывающее меню; в первом пункте говорится: «Заменить создание словаря»; поэтому нажмите Enter снова, чтобы получить

params = {"start_at_document": "100", "document_limit": "2"} 
Смежные вопросы