alibek
Во втором же классе PercentStyle идут строки:
default_format = '%(message)s'
asctime_format = '%(asctime)s'
asctime_search = '%(asctime)'
Это присваивание констант на уровне класса. Эти операции ничего не меняют нигде. Так же, как и регулярное выражение, которое там компилируется дальше, ни на что не влияет и даёт константный объект.
>>> import re
>>>
>>> pat = re.compile('.')
>>>
>>> pat
re.compile('.')
>>> type(pat)
<class '_sre.SRE_Pattern'>
>>> dir(pat)
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'findall', 'finditer', 'flags', 'fullmatch', 'groupindex', 'groups', 'match', 'pattern', 'scanner', 'search', 'split', 'sub', 'subn']
>>> pat.x = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: '_sre.SRE_Pattern' object has no attribute 'x'
>>> pat.match = lambda: 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: '_sre.SRE_Pattern' object attribute 'match' is read-only
>>>
Так что ты перепутал немножечко. А почему перепутал? А потому, что ты не шаришь вообще в этой теме, так как ни одной книги не прочитал, в которых всё это 100500 раз описано со всех сторон.
alibek
Таким образом два случая использования оператора присвоения в моем коде (logging.TRACE = 5, logging.Logger.trace = _trace) и декларация функции (def _trace) это не “бред”, а вполне рабочая и используемая конструкция.
Даже несмотря на то, что в logging.TRACE в твоём чудесном коде, причём “правильном” (как ты выразился изначально и упёрся потом, когда тебя носом в это ткнули, что это неправильно вообще-то), ей присваивается константа, это тоже неправильно. Это вообще твой уровень показывает, что ты находишься где-то на непонимании даже того, чем вредны глобальные переменные. То есть это воообще новичковый пробел в знаниях. Почему это нельзя делать - по той же самой причине, почему и глобальные переменные нельзя делать. У них похожие механизмы генерации бардака и неразберихи.
То есть у тебя один модуль влияет на внутреннее состояние другого модуля прямо при своём возникновении. То есть если таких модулей сделать штук пять, то от порядка их создания будут зависеть все настройки для остальных модулей, сделанных ранее. Они всё время будут меняться благодаря появлению очередного “умного” модуля в программе. Если другой модуль добавит 5 для другого уровня, то ты даже об этом не узнаешь. Сам-то модуль logging расчитывает на то, что это будет делаться в __init__'е всё, как он и сказал в документации своей делать, перед вызовом которого он предварительно сохранит всё состояние модуля, а потом восстановит его обратно после работы.
А ты думал, там просто так про __init__ написано, от нечего делать? Человеку было нечего делать, он про __init__ написал, да? Это вот по твоему мнению: когда ты что-то не понимаешь, то ты вместо того, чтобы свою макушку прочистить лишний раз, перечитать что-то там, уточнить, начинаешь автора дискредитировать, типа автор модуля тупой. А тупой-то ты.
alibek
Но если посмотреть код этого метода (https://github.com/python/cpython/blob/main/Lib/logging/__init__.py#L156), то это не метод класса, а функция в теле модуля
Ты знаешь, это как бы не аргумент. Иметь дело можно только с интерфейсом модуля, это знает любой дурак, а ты не знаешь, потому что ты глупее вот этого вот любого дурака. Ну поздравляю тебя!
Чем это закончится: когда автор поменяет устройство своего кода, не предупредив тебя, такого красивого и умного, твоя программа с этого момента обосрётся прилюдно и всё. А ты будешь что делать - не признавать свои ошибки, про которые ты мне там пишешь дальше, а ты будешь окружающих обвинять, какие они тупые и не понимают, что твоя программа не обосралась, а это они обосрались и валят на твою программу. Это не моё говно! Это мне подложили это говно! Вот твой девиз.
Очень похоже на анекдот вот этот
Анекдот №-311115024
Поручик Ржевский просыпается после пьянки и видит,
что денщик Петруха чистит его обблёванный китель.
Ну поручику, естессно, невздобняк стало - офицер,
и так обблевался. Он и говорит денщику:
- Знаешь, Петруха, вчера на балу встретил своего друга
генерала, а он скотина так нажрался и обблевал мне
весь китель.
- Да, Ваше Благородие, он вам не только китель обблевал,
но ещё и в штаны насрал.
Да, вот так вот ты будешь реагировать, когда тебя ткнут носом в твою говнопрограмму.
alibek
Думаю, что на самом деле причина подобных агрессивных заявлений в другом.
Хорошо, что ты это написал, потому что это всё про тебя написано
alibek
Очевидно, что интернет играет в вашей жизни социальную функцию.
Вероятно, вы рассматриваете данный форум в каком-то смысле как свою территорию.
А там, где есть территория и коллектив, есть и иерархические игры.
Возможно вы думаете, что любая ответная реакция новичка на ваш совет, отличная от благодарности и признательности, является покушением на ваше место в иерархии, на которое, разумеется, нужно дать мгновенный и жесткий отпор.
Поэтому ваши агрессивные заявления про “бред” на самом деле не про корректность (или некорректность) программного кода, а автоматическая реакция с попыткой заранее обесценить любые аргументы соперника, объявив их несущественными и/или ложными.
Реакция поспешная и ошибочная, но признать ошибку вы уже не можете, ведь это публичное место и вдруг другие участники форума подумают, что Акела промахнулся.
Отсюда и пустая болтовня и софистика, чтобы отвлечь от своей ошибки и не допустить падения авторитета.
Только у тебя не социальная функция, это ты немножко подменил, а это по-другому устроено. Ты чему-то там подучился, совсем немного (может, тебя турнули откуда-то, где ты там сидел, присосавшись плотненько, поэтому-то и не развивался вообще, а зачем? на покушать и так дают), и тут ты решил делать так. А вот теперь я сделаю такой финт ушами: создам себе рекламу и буду её везде постить, какой я замечательный, какой я нужный и так далее. Может, кто-то не разберётся и возьмёт меня к себе, чтобы я снова мог сидеть и нихера не делать, как обычно, по привычке. А как же их найти, вот этих дурачков? Хм… да надо зайти просто на какой-нибудь форум, куда ходят всякие шлюшки из этих hh, avito и прочих шараг и ищут, рыщут в поисках специалистов, которых так не хватает вокруг, и там начать продвигать себя, авось клюнут. А раз так, то они же не разберутся, что я полный дебил и ничего не знаю, а потому и поведутся на меня, читая мои письмена и коды великие, которые я будут обильно приправлять своими мнениями тупорылыми и спорами разного рода желательно с кем-нибудь покрупнее (замахнулся бы на создателя модуля logging, но слишком палевно это, могут просто понять, что я дурак обычный, надо осторожнее действовать - назалупаться, например, на какого-нибудь местного авторитета, гуру или кого-нибудь подобного). Сказано - сделано. Главное, надо уверенно себя вести, утверждать, что я мастер этого дела, говорить, что мой код везде всегда правильный, даже если это полная ахинея. Ну вот такая вот стратегия, мне вот кажется она хорошей, я же её САМ придумал, я же умнее всех и никто об этом не догадается даже, все же дураки, а я один умный, а сомневаться в собственной гениальности - это себя не уважать, это моё и-зо-бре-те-ни-е! никто кроме меня никогда так не делал и не приходил на форумы.
Слушай, тут такого шлачья очень много приходит. Ну на сколько их хватает, как ты думаешь? Поэтому у них и по пятнадцать сообщений. А ты думаешь почему? Думаешь, я их тут убиваю сижу? Нет, просто им тут ничего не светит и они идут другой форум засирать, где их ещё послушают с открытым ртом, пока не поймут, что это за гаврики на самом деле.
Ну и вот. Так ты припёрся сюда. Но тут тебя быстренько разнесли.
alibek
Отсюда и пустая болтовня и софистика, чтобы отвлечь от своей ошибки и не допустить падения авторитета.
Какого авторитета? Я тут сижу больше десяти лет. Ты думаешь, сюда никто не приходил и не выяснял про меня ничего? Что я знаю и чего я не знаю? Да тут всё выяснено и перевыяснено десять раз уже. Меня эти вещи вообще не волнуют. Я всему учусь не для того, чтобы кому-то там нравиться, особенно всяким шлюшкам со всяких рабочих платформ, ценность которых не больше чем у сопли под носом, потому что они ничего не умеют делать в жизни и просто сидят и стараются на айтишниках подзаработать себе на жизнь их беспонтовую, на что - на трусы, на булочки. Это все их интересы, они ничем не занимаются, они ничего не развивают, они ничего не изучают. Им это не надо.
А ты хочешь понравиться вот им, использовать форум, а потом сдрыснуть отсюда при первой же возможности, как это делали сотни человек до тебя. Они все такие смазливые, хорошие, дружные, но как только выясняется, что тут денег нет и не будет (кто тут деньги будет искать, да? казалось бы, это же очевидно), так они точно так же, спокойненько собирают свои манатки и тихо-тихо уходят отсюда, даже ни с кем не попрощавшись из своих “друзей” (которые были им не друзьями, а просто так, трамваями, чтобы просто дальше куда-то там проехать на них до следующей остановки, где сытно и вкусно). И тут ты видишь, что вчера учившийся всему и всё познающий со всем большим и огромным интересом ученичок раз и пропал куда-то. Понимаешь? Вот так это работает. Ну что сказать, шлюшкам - шлюшково. Пускай они со своими шлюшками и сидят и друг на друге зарабатывают. А мы будем программированием заниматься, питоном. Понял? Потому что питон выживет, а они все сдохнут.