вторник, 8 апреля 2014 г.

приватные атрибуты в python

Ну нет приватных членов в питоне, ну нет...
Не надо писать С++/Java подобный код:

class C(object):
    def __init__(self):
        self.__name = 'default'

    def set_name(self, name):

        self.__name = name

    def get_name(self):

        return self.__name

Пробуем
>>>С().__name

Traceback (most recent call last):
  ...
    C().__name

AttributeError: C instance has no attribute '__name'

Посмотрим на список атрибутов объекта

>>>С().__dict__
{'_C__name': 'default'}

Ну и в догонку меняем атрибут

>>>С()._C__name = 'new_name'

Двойное подчеркивание всего лишь соглашение, интерпретатор ничего не прячет,

он лишь переименовывает атрибут. То же самое касается и приватных методов, единственно получать новое название метода нужно через dir().

Да и, если хотите управлять доступом к атрибутам, смотрите в сторону свойств.



Ссылки

https://docs.python.org/2/library/stdtypes.html#object.__dict__
http://stackoverflow.com/questions/70528/why-are-pythons-private-methods-not-actually-private

очистка экрана консоли

Небольшой хак по очистке экрана экрана консоли. Будет полезен тем, кто любит кодить в консоли.

import os
os.system('cls')

вторник, 1 апреля 2014 г.

Чтение исходников

Почему возникает потребность читать исходники сторонних, стандартных библиотек?
1. В исходниках можно найти примеры инженерных решений
Можно подчеркнуть архитектурные решения, принципы взаимодействия компоненнтов и прочее и прочее.

2. Примеры кода
Если код писал профессионал, то можно утащить себе в копилку красивые решения. Обратная ситуация - говнокод - в копилочку как делать не надо

3. Исходники могут быть единственным источником документации
"...код должен быть самодокументированным...", "...комментарии - трата времени...". Если разработчик библиотеки был из этих, то в перед к чтению исходного кода.

4. Для поиска багов
Баги есть везде, даже в стандартных библиотеках. И возникают ситуации когда - программа ведет себя не так как описано в документации и ошибка явно не в собственном коде, придется опускаться на уровень ниже  и читать исходники библиотек.

среда, 26 марта 2014 г.

Внутрь питона

Блуждая по сети нашел несколько неплохих статей о внутреннем устройстве python. Будет полено для тех кто хочет разобраться как устроен и работате python 

Целые числа

Словари

Списки

По мере нахождения новйо информации буду пополнять список

пятница, 21 марта 2014 г.

Sublime Text 2

В процессе работы у каждого разработчика складывается свое рабочее окружение. Пять капель и смоей стороны. Для работы в питоне я считаю идеальным инструментом - PyCharm, но для написания небольших скриптов использую Sublime Text 2.

Sublime Text 2 - очень популярный редактор с большим функционалом, фишками и огромным количеством дополнительных плагинов для него.
http://www.sublimetext.com/2


Набор плагинов для работы



Package Control
Первое что нужно ставить после установки ST. Он позволяет устанавливать дополнительные плагины из репозитариев.
https://sublime.wbond.net/

SublimeLinter
Этот плагин добавляет поддержку lint в ST
https://github.com/SublimeLinter/SublimeLinter-for-ST2


SublimeCodeIntel
Плагин, добавлюющий в ST «умный autocomplete». Не такой умный как в PyCharm, но это лучше чем ничего.
https://github.com/SublimeCodeIntel/SublimeCodeIntel


AutoPep8
Проверка кода python на соотвествие pep8. Есть возможность автоматического переформатирования кода.
https://github.com/wistful/SublimeAutoPEP8