Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Стиль – це результат гіркого досвіду

with 2 comments

Imports should usually be on separate lines. (PEP8)

Колись давно, десь три роки тому, всередині фрейморку Zope якийсь добрий чоловік зробив отаку зміну.

Якщо конкретно, то мені в ній найбільше сподобалось оце:

І зараз я з прикладом поясню чому менше рядків краще лише в тому випадку коли рядки при цьому не стають довшими. Нехай ми працюємо з версією Zope зробленою ще до цього коміта і маємо трейс:

Переконуємось що App.special_dhtml містить клас DTMLFile. Значить причина помилки при імпорті в тому що код модуля не встигає прогнатись аж до того місця де йому кажуть створити цей клас. Методом дихотомії визначаємо що проблема в рядку 14:

import DocumentTemplate, Common, Persistence, MethodObject, Globals, os, sys

Десь тут виникає той самий ImportError, але рядок надто довгий аби точно знати де. Доведеться переписати аби рядків було більше. Далі import pdb; pdb.set_trace(); n n n n n ..., бачимо що винен модуль Globals, який імпортує App, а щоб імпортувати App, треба імпортувати special_dhtml, імпортом якого ми зараз займаємось.

Бачимо що й без нього можна обійтись, видаляємо імпорт, отримуємо наступну помилку.

The show must go on
I’ll face it with a grin
I’m never giving in
On – with the show
I’ll top the bill, I’ll overkill

Ну ви зрозуміли 😉

Advertisements

Written by bunyk

Березень 21, 2014 at 20:15

Оприлюднено в Кодерство

Tagged with

Відповідей: 2

Subscribe to comments with RSS.

  1. виходить, потрібні валідатори стилю?

    danbst

    Березень 22, 2014 at 22:02


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: