Какая польза от искажения личных имен в Python?

Ненавижу говорить вам, но я и другие могут использовать настройки по умолчанию для белого списка, чтобы контролировать фильтрацию спама.

Это означает, что все сообщения электронной почты из неизвестного источника автоматически спам и отвлекаются в папку спама. (Я не позволяю службе электронной почты удалять спам, потому что я хочу всегда просматривать приходы для ложных срабатываний, что довольно легко сделать, если вы быстро просмотрите папку.)

I даже у меня есть электронная почта от себя, отправляюсь в спам-ведро, потому что (1) я обычно не отправляю электронное письмо себе и (2) есть спамеры, которые подделывают мой адрес возврата в спаме, отправленном мне.

Чтобы выбраться из названия спама, я должен учитывать, что ваша почта может быть легитимной (от отправителя и субъектной информации) и открывать ее сначала в виде открытого текста (по умолчанию для всей входящей почты, спама или нет), чтобы увидеть, является законным. Моя папка спама не будет использовать ссылки в сообщениях электронной почты, поэтому я защищен от сложных ссылок на изображения и других ошибок.

Если я хочу, чтобы будущие поступления из одного источника, чтобы перейти в мой ящик и не были отвлечены для просмотра спама, я укажу это на свой почтовый клиент. Для тех организаций, которые используют пересылку корреспонденции и уникальные адреса отправителя для одной части почты, это слишком плохо. Они никогда не получают моего одобрения и всегда отображаются в папке со спамом, и если я занят, я никогда не буду смотреть на них.

Наконец, если электронное письмо не является разборчивым в открытом тексте, даже когда отправлено как HTML, я, скорее всего, просто удалю его, если только это не то, что я знаю, представляет интерес для меня в силу исходного и предыдущего ценного опыта.

Как вы можете видеть, это, в конечном счете, под пользователями и нет автоматизированного акта, который убедит такую ​​систему, что ваша почта является законной только из ее структуры. В этом случае вам нужно играть красиво, не делайте ничего, что похоже на фишинг, и облегчите пользователям, которые доверяют вашей почте, чтобы добавить вас в свой белый список.

13
задан cmcginty 21 July 2009 в 23:11
поделиться

3 ответа

Отчасти для предотвращения случайного доступа к внутреннему атрибуту. Вот пример:

В вашем коде, который является библиотекой:

class YourClass:
    def __init__(self):
        self.__thing = 1           # Your private member, not part of your API

В моем коде, в котором я наследую от вашего класса библиотеки:

class MyClass(YourClass):
    def __init__(self):
        # ...
        self.__thing = "My thing"  # My private member; the name is a coincidence

Без изменения частного имени мое случайное повторное использование вашего имени нарушило бы ваша библиотека.

25
ответ дан 1 December 2019 в 18:06
поделиться

Из PEP 8 :

Если ваш класс предназначен для создания подклассов, и у вас есть атрибуты, которые вы не хотите использовать подклассами, рассмотрите возможность именования их двойным подчеркивания в начале и без подчеркивания в конце. Это вызывает алгоритм изменения имени Python, где имя класса искажается в имени атрибута. Это помогает избежать конфликтов имен атрибутов, если подклассы непреднамеренно содержат атрибуты с тем же именем.

(выделение добавлено)

16
ответ дан 1 December 2019 в 18:06
поделиться

Изменение имени предназначено для предотвращения случайного доступа к внешним атрибутам. В основном это делается для того, чтобы избежать конфликтов имен.

0
ответ дан 1 December 2019 в 18:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: