Походу от ИИ пока вообще одни сплошные грабли, не очень понятно чем он помогает, зато работы лишил уже порядочно кожаных мешков, а дифейки, такое ощущение, вообще, самое успешное применение.
За статью спасибо, познавательно, некоторые (мало) слова понял, но выглядит это как попытки забивать гвозди микроскопом. Если для чего и нужны такие интеллектуальные экзерсисы так это точно не для написания типового круда. Для чего - конечно было бы любопытно узнать, начало то было многообещающее - мол от программ часто зависят финансы и даже жизнь, есть хоть один пример, где подобное что либо из ужасного предотвратило? Надеялся, что Вы, как представитель страховой компании, приведете примеры. В плане пофилософствовать - создание программы - это управление сложностью, т.е. типовой круд бесконечно сложен (непознаваем), если его с математической точки зрения оценивать на корректность, а обычные яп эту сложность сводят к компромиссу между ограниченно проверяемой корректностью и возможностью реализовать, не отправив команду в компанию к наполеонам и мертвым продуктам питания.
Прикольно, но не в плане критики а дискуссии ради. Вот зачем эти знания даже опытному питонисту не говоря уже о рядовом? Понятно что любопытно, понятно что лучше знать чем не знать. Но ни в одном проекте никогда вообще не видел чтобы нюансами управления памятью хоть кто то заморачивался, на собесах да, спрашивают, в работе - нет. Питон в этом плане предоставляет хорошую надежную абстракцию, не требующую от программиста каких бы то ни было усилий. Краем уха слышал что в геймдеве отрубают gc и управляют памятью в полу-ручном режиме, но в других областях прям нет.
Мнда, занятно с этими замыканиями в питоне всё-таки В первом случае замыкания нет, а вот во втором замыкание есть но на одну и ту же переменную, и то и то работает не так как ожидается интуитивно
a = []
for i in [1, 2, 3]:
a.append(lambda: i)
for f in a:
print(f.__closure__) # None
a = [lambda: i for i in [1,2,3]]
for f in a:
print(f.__closure__) # (<cell at 0x00000214C94E0940: int object at 0x00000214C8EA0130>,)
тобой займётся грамотный педагог, который в удобном для тебя темпе расскажет и растолкует, даст рекомендации, повозится с тобой, получит твоё задание, изучит его, еще раз даст свои рекомендации и растолкует непонятое
Ну так Вы прям в точности описали общение с дипсиком какимньть, может специализация роботов именно на этом аспекте и даст какие то шансы едтеху, хотя зачем едтех если есть дипсик непонятно.
Мне кажется стоит упомянуть, что есть просто два "пространства имен" а именно глобальное, доступное через globals() и локальное, соответственно locals() и это просто словари, все имена питон относит или к одному или ко второму, присваивание или создает ключ в словаре или модифицирует. Соответственно пространство поиска засады на собеседовании сводится к тому чтобы определить к какому из двух пространств относится имя. С замыканиями чуть хитрее, кстати в примере про лямбды замыкание не создается, поэтому фраза "замкнулись на локальную переменную" не совсем корректна.
Чтобы создать замыкание надо использовать функции высшего порядка, и у полученного объекта прям будет атрибут с переменной, которую возвращаемая функция захватила. А в Вашем примере лямбды просто работают с глобальной переменной.
f_factory = lambda x: lambda:x
f = f_factory(1)
print(f.__closure__) # (<cell at 0x000002DE17A930A0: int object at 0x000002DE174500F0>,)
Хорошая статья, прям с удовольствием прочитал. Автора бы с профессором Савельевым познакомить, тот помог бы развить тему до церебрального сортинга. А так да - мало что в жизни полезно так же, как удачный выбор профессии. Распаковка это ок, интересный прием, но всё равно пока не попробуешь не узнаешь.
Не очень понятно зачем рынок и план противопоставлять, если можно совмещать. Для решения определенного рода задач государство может создавать структуры, заточенные на решение именно таких задач, отключая, при этом, отдельные рыночные механизмы, в первую очередь заточенность на получение прибыли. В качестве мотивации - личная ответственность. Собственно прям сейчас мы подобное видим в оборонке. Все инфраструктурные проекты - тоже своего рода симбиоз рыночных и вне-рыночных механизмов. Неплохо было бы сюда и жилье подключить, но это из области желаемого пока, хотя в Европе во многих странах государство активно эту отрасль так же регулирует. Т.е. управлять надо какими то крупными кластерами проблем, а "микроменеджемент" оставить рыночным механизмам. Что то подобное, как я понимаю, как раз в Китае и практикуется, отсюда вечный споры что там капитализм или социализм. И главное именно при капитализме для реализации подобного симбиоза вполне есть механизмы - госкорпорации, целевая эмиссия и вот это всё. Да, это всё очень плохо и приводит так или иначе к эксплуатации человека человеком, но если задаться догмой что эксплуатация безусловное и недопустимое зло, то гибкости в выборе инструментария остается сильно меньше, поэтому социализм совмещать с рынком как то сильно хуже получается.
Вообще дичь конечно, грызня образованных квалифицированных творческих людей за пайку в тыщу баксов, на фоне подорожания всего в разы за считанные месяцы. Не найм поломан, а вся ситуация с доходами в нашей стране поломана.
ага, прикол, через repl False, если запустить скрипт то True
(.venv) PS C:\...\Documents\Projects\playground> python
Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=45234
>>> print(a is 45234)
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
False
C:\...\Documents\Projects\playground\.venv\Scripts\python.exe C:/.../Roaming/JetBrains/PyCharm2022.1/scratches/scratch_156.py
C:\...\AppData\Roaming\JetBrains\PyCharm2022.1\scratches\scratch_156.py:3: SyntaxWarning: "is" with a literal. Did you mean "=="?
print(a is 45234)
True
a=None
b=None
if 1:
a = 45234+1
b = 45234+1
print(a is b)
if 1:
a = 45234+1
print(a is b)
# True True
так что с этим самым интернированием в новых питонах какая то суровая работа произведена, но это примерно то же что от кандидата в недрах CPython заставлять ковыряться, для особых энтузиастов наверняка занимательно, но пользоваться инструментом никак не помогает
Походу от ИИ пока вообще одни сплошные грабли, не очень понятно чем он помогает, зато работы лишил уже порядочно кожаных мешков, а дифейки, такое ощущение, вообще, самое успешное применение.
За статью спасибо, познавательно, некоторые (мало) слова понял, но выглядит это как попытки забивать гвозди микроскопом. Если для чего и нужны такие интеллектуальные экзерсисы так это точно не для написания типового круда. Для чего - конечно было бы любопытно узнать, начало то было многообещающее - мол от программ часто зависят финансы и даже жизнь, есть хоть один пример, где подобное что либо из ужасного предотвратило? Надеялся, что Вы, как представитель страховой компании, приведете примеры. В плане пофилософствовать - создание программы - это управление сложностью, т.е. типовой круд бесконечно сложен (непознаваем), если его с математической точки зрения оценивать на корректность, а обычные яп эту сложность сводят к компромиссу между ограниченно проверяемой корректностью и возможностью реализовать, не отправив команду в компанию к наполеонам и мертвым продуктам питания.
Прикольно, но не в плане критики а дискуссии ради. Вот зачем эти знания даже опытному питонисту не говоря уже о рядовом? Понятно что любопытно, понятно что лучше знать чем не знать. Но ни в одном проекте никогда вообще не видел чтобы нюансами управления памятью хоть кто то заморачивался, на собесах да, спрашивают, в работе - нет. Питон в этом плане предоставляет хорошую надежную абстракцию, не требующую от программиста каких бы то ни было усилий. Краем уха слышал что в геймдеве отрубают gc и управляют памятью в полу-ручном режиме, но в других областях прям нет.
Мнда, занятно с этими замыканиями в питоне всё-таки
В первом случае замыкания нет, а вот во втором замыкание есть но на одну и ту же переменную, и то и то работает не так как ожидается интуитивно
Ну так Вы прям в точности описали общение с дипсиком какимньть, может специализация роботов именно на этом аспекте и даст какие то шансы едтеху, хотя зачем едтех если есть дипсик непонятно.
Дада, точно, ключевое слово nonlocal
Тут кстати тоже есть где подзарыть кандидата
Мне кажется стоит упомянуть, что есть просто два "пространства имен" а именно глобальное, доступное через globals() и локальное, соответственно locals() и это просто словари, все имена питон относит или к одному или ко второму, присваивание или создает ключ в словаре или модифицирует. Соответственно пространство поиска засады на собеседовании сводится к тому чтобы определить к какому из двух пространств относится имя. С замыканиями чуть хитрее, кстати в примере про лямбды замыкание не создается, поэтому фраза "замкнулись на локальную переменную" не совсем корректна.
Чтобы создать замыкание надо использовать функции высшего порядка, и у полученного объекта прям будет атрибут с переменной, которую возвращаемая функция захватила. А в Вашем примере лямбды просто работают с глобальной переменной.
Хорошая статья, прям с удовольствием прочитал. Автора бы с профессором Савельевым познакомить, тот помог бы развить тему до церебрального сортинга. А так да - мало что в жизни полезно так же, как удачный выбор профессии. Распаковка это ок, интересный прием, но всё равно пока не попробуешь не узнаешь.
Не очень понятно зачем рынок и план противопоставлять, если можно совмещать. Для решения определенного рода задач государство может создавать структуры, заточенные на решение именно таких задач, отключая, при этом, отдельные рыночные механизмы, в первую очередь заточенность на получение прибыли. В качестве мотивации - личная ответственность. Собственно прям сейчас мы подобное видим в оборонке. Все инфраструктурные проекты - тоже своего рода симбиоз рыночных и вне-рыночных механизмов. Неплохо было бы сюда и жилье подключить, но это из области желаемого пока, хотя в Европе во многих странах государство активно эту отрасль так же регулирует. Т.е. управлять надо какими то крупными кластерами проблем, а "микроменеджемент" оставить рыночным механизмам. Что то подобное, как я понимаю, как раз в Китае и практикуется, отсюда вечный споры что там капитализм или социализм. И главное именно при капитализме для реализации подобного симбиоза вполне есть механизмы - госкорпорации, целевая эмиссия и вот это всё. Да, это всё очень плохо и приводит так или иначе к эксплуатации человека человеком, но если задаться догмой что эксплуатация безусловное и недопустимое зло, то гибкости в выборе инструментария остается сильно меньше, поэтому социализм совмещать с рынком как то сильно хуже получается.
del
Вообще дичь конечно, грызня образованных квалифицированных творческих людей за пайку в тыщу баксов, на фоне подорожания всего в разы за считанные месяцы. Не найм поломан, а вся ситуация с доходами в нашей стране поломана.
А когда модели будут обучаться на навайбкоженном, за неимением накоженного вручную, наступит сингулярность :)
Что то мало козырных питонячих плюх тут, нате еще одну, и да, бывает спрашивают на собеседованиях :)
Что вернет функция :)
для сравнений удобно, для других операторов сайдэффект - я сам когда первый раз в это вляпался пол дня сидел соображал это глюк или это я тупой
И примерно 2 десятка способов объединить поля в структуру. Вот это я считаю топом дзена.
ага, прикол, через repl False, если запустить скрипт то True
А числа больше 256 не кэшируются?
более того
так что с этим самым интернированием в новых питонах какая то суровая работа произведена, но это примерно то же что от кандидата в недрах CPython заставлять ковыряться, для особых энтузиастов наверняка занимательно, но пользоваться инструментом никак не помогает
А мне вот сегодня задали
a=5
print(a is 5)
a=45234
print(a is 45234)
ну то есть в историческом разрезе интересно (во 2м питоне было бы True False, а в современных True True)
но вот зачем это знание может пригодиться в принципе и что именно показывает - загадка, это прям эталонная задача из серии "приколы нашего городка"
Чисто питонячий прикол для выражений вида 3>2>1, раскладывается в (55 == True) and (True is True)
через мобильный мегафон даже пакет вылить в pypi не получается :(