Ошибка, которую я сделал, заключалась в том, что я пропустил несколько предварительных условий python3.7. Загрузка пакетов, перечисленных в: Python3: ImportError: Ни один модуль с именем '_ctypes' при использовании значения из многопроцессорной обработки модуля и последующей переустановке python 3.7 не получил установленный pip. Теперь, когда я вхожу в pip3.7 -V
, я получаю «pip 18.1 из /usr/local/lib/python3.7/site-packages/pip (python 3.7), который мне нужен.
Из-за "Программы к 'интерфейсу', не 'реализации'". (Банда Четыре 1995:18) (http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1), некоторые люди предпочитают объявлять переменные экземпляра у основания класса. причем теория состоит в том, что пользователь класса больше интересуется тем, что они могут сделать с классом (методы) в противоположность тому, как что-то сделано (переменные). Размещение методов наверху класса выставляет их сначала пользователю, когда они смотрят на код.
Нет никакой особенно "хорошей" причины того, чтобы сделать его так или иначе. Единственная вещь, которая действительно имеет значение, состоит в том, что все на том же проекте делают это тот же путь.
Однако размещение их наверху намного более распространено, по моему опыту, и является практикой, рекомендуемой инструкциями по стилю Java, таким образом, это - то, с чем я пошел бы.
Можно осуществить выбранную конвенцию с автоматическим средством форматирования исходного кода, таким как Драндулет или то, что идет с Eclipse.
Это - главным образом (если не полностью) персональное предпочтение. Мне нравятся они наверху, но я не мог действительно привести лучшую причину для него затем, что это - способ, к которому я привык.
Большинство переменных экземпляра закрытые
, поэтому я стараюсь помещать их внизу, потому что я объявляю элементы в порядке уменьшения видимости. Если бы я объявил их в порядке увеличения видимости, они были бы наверху, что тоже разумно.
Что мне не нравится, так это наличие частных полей, за которыми следуют общие поля, за которыми следуют частные методы. Если я разрабатываю клиентский класс, мне нужны все общедоступные части вместе (поскольку это все, что меня интересует)