The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Автор Python устроился на работу в Microsoft, opennews (?), 12-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


76. "Автор Python устроился на работу в Microsoft"  +6 +/
Сообщение от Vkni (ok), 13-Ноя-20, 03:11 
Питон проще? ;-)

def f(a = []):
    a.append(1)
    return len(a)

print(f())
print(f())
print(f())

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

80. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от Аноним (22), 13-Ноя-20, 03:18 
Сейчас мозги выкипят от питоньей логики...
Ответить | Правка | Наверх | Cообщить модератору

150. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от userd (ok), 13-Ноя-20, 11:11 
да ладно!
Давай я тебя ещё порадую -

a='a=%r;print(a%%a)';print(a%a)

а ты напишешь аналог на своём любимом языке :)

Ответить | Правка | Наверх | Cообщить модератору

305. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от Аноним (-), 22-Ноя-20, 23:38 
нельзя ли пояснить что делает столь чудный и интуитивный фрагмент кода? то что это какой-то хацкерский вы...н я уже догадался, потому что нормальные люди такой код не пишут.
Ответить | Правка | Наверх | Cообщить модератору

316. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от userd (ok), 23-Ноя-20, 00:43 
Этот код - решение задачи «Познай самого себя, или Программа, печатающая собственный исходный текст» из книги «Этюды для программистов» Чарлза Уэзерелла. Тема довольно бессмысленная, но прикольная. Можно использовать в качестве подводки к срачу - ни на одном языке программирования такие программы очень хорошо не выглядят. Выше по треду товарищ жаловался на выкипающие от питона мозги, и я хотел посмотреть от чего у него мозги не выкипают. Не получилось, должно быть все уже выкипели :) Далее см. https://ru.wikipedia.org/wiki/%D0%9A%D1%...)
Ответить | Правка | Наверх | Cообщить модератору

82. "Автор Python устроился на работу в Microsoft"  –4 +/
Сообщение от Аноним (36), 13-Ноя-20, 03:28 
Не ну это конечно замечательный пример. Но писать проще, да. Однострочник на питоне заменяет в среднем 1000 экранов кода на си. И если в 1 экране кода на си уже найдутся баги, то в 100 экранах кода на питоне их не будет (а если думать в процессе, то и на тысячу экранов багов вполне вероятно не будет). И это будет понятный код. И без багов. С тем же си это не прокатит.
Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

89. "Автор Python устроился на работу в Microsoft"  –1 +/
Сообщение от Аноним (36), 13-Ноя-20, 04:00 
Я замечал это интересное свойство питона уже не раз. Несколько дней пишешь код, потом запускаешь его, и всё работает -- максимум скобочку где-нибудь не там поставил (синтаксическая ошибка). При этом будет использована куча батареек, несколько паттернов ООП, а код разнесён по модулям… Как-то раз несколько лет не прикасался к нему, и вот такой результат у меня вышел. Наверно единственный язык, с которым такое возможно. Его не нужно исполнять, чтобы всегда знать, что он работает. Поведение как в примере выше по треду ты не встретишь никогда, потому что никто так не пишет в своём уме.
Ответить | Правка | Наверх | Cообщить модератору

124. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от Аноним (121), 13-Ноя-20, 09:41 
Написал одну строчку на питоне, и возомнил себя программистом?
Ответить | Правка | Наверх | Cообщить модератору

165. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от Аноним (165), 13-Ноя-20, 12:30 
тю, а ты иксперт, судя по всему? покажи-ка свой гитхаб, трепло
Ответить | Правка | Наверх | Cообщить модератору

202. "Автор Python устроился на работу в Microsoft"  +1 +/
Сообщение от Аноним (181), 13-Ноя-20, 14:42 
Не каждому иксперту нужен гитхаб. Но каждому гитхабу нужен иксперт.
Ответить | Правка | Наверх | Cообщить модератору

105. "Автор Python устроился на работу в Microsoft"  +5 +/
Сообщение от www2 (??), 13-Ноя-20, 07:48 
Сказочник.

Когда пишешь программу на Си, то по крайней мере компилятор хоть что-то проверяет ещё на этапе компиляции. Мне вот по тем же причинам нравился Perl с его use strict.

Потом много писал на Python долго не мог привыкнуть к тому, что если ты опечатался в имени переменной, то это может оставаться незамеченным до того момента, пока этот код не попытается выполниться.

Те же квадратные скобочки в Python для обращения и к массивам и к словарям дают возможность делать ошибки, не проверяемые до попытки их выполнения. В Perl если ты объявил структуру как my %a, то обратиться к ней как $a[1] ты не сможешь. Это уже не говоря про Си, где контроль типов ещё более жёсткий.

Сейчас мне нравится Go. Приятное сочетание ощущений строгости от Си и лёгкости обращения от Python.

Ответить | Правка | К родителю #82 | Наверх | Cообщить модератору

108. "Автор Python устроился на работу в Microsoft"  –6 +/
Сообщение от Бен (?), 13-Ноя-20, 08:29 
> не говоря про Си, где контроль типов ещё более жёсткий.

Как интересно, сразу видно профессионал. Если что, си - классический пример языка слабой типизации, а питон - строгой.

Ответить | Правка | Наверх | Cообщить модератору

115. "Автор Python устроился на работу в Microsoft"  +4 +/
Сообщение от n00by (ok), 13-Ноя-20, 09:02 
>> не говоря про Си, где контроль типов ещё более жёсткий.
> Как интересно, сразу видно профессионал. Если что, си - классический пример языка
> слабой типизации, а питон - строгой.

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

Ответить | Правка | Наверх | Cообщить модератору

190. "Автор Python устроился на работу в Microsoft"  –3 +/
Сообщение от Аноним (190), 13-Ноя-20, 13:44 
А разве есть такое понятие как "жёсткая" типизация?
Ответить | Правка | Наверх | Cообщить модератору

211. "Автор Python устроился на работу в Microsoft"  +1 +/
Сообщение от n00by (ok), 13-Ноя-20, 15:51 
В сообщении и "типизация" нет, перечитайте внимательно. Автор описал проблему своими словами, он как раз понимает о чём говорит, пусть и не владеет терминологией, в отличии от зубрилок.
Ответить | Правка | Наверх | Cообщить модератору

157. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от анононимс (?), 13-Ноя-20, 11:51 
Вот и у меня так. + выбросил из своей жизни джаву на свалку после знакомства с go
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

172. "Автор Python устроился на работу в Microsoft"  –1 +/
Сообщение от Аноним (36), 13-Ноя-20, 12:55 
А не надо опечатываться. Ничего компилятор не проверяет по сути, всевозможные анализаторы тоже не все проблемы находят. Потом на отладку бага уходят месяцы и годы, пока сам не найдёшь и не изолируешь так и будет висеть, и отладка нейтив кода это тебе не в трейс повтыкать минуту. Я точно могу утверждать, что в питоне типы -- не проблема, индексы тоже не проблема. Проверок куда больше, чем ты тут рассказываешь (особенно с аннотациями). В си же вообще нет проверок на которые можно полагаться и ошибку придётся искать самому (совсем не какой-нибудь банальный except IndexError и смотри, где ошибся).
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

307. "Автор Python устроился на работу в Microsoft"  –1 +/
Сообщение от Аноним (-), 22-Ноя-20, 23:42 
ггг большая часть обломов в питонятине случается в рантайме, что очень доставляет
Ответить | Правка | Наверх | Cообщить модератору

306. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от Аноним (-), 22-Ноя-20, 23:40 
> Однострочник на питоне заменяет в среднем 1000 экранов кода на си.

После установки пары десятков либ и сношений с ними. А, да, питонистам никто не говорил, но на си так тоже можно было. И не только на си.

Более того - на си можно либу накатать и дернуть ее из почти любого ЯП-а. Удачи накатать либу на питоне и дернуть ее из чего-то кроме питона. А, ну да, реюз кода же мы будем вспоминать только когда удобно, а когда неудобно - это не надо.

Ответить | Правка | К родителю #82 | Наверх | Cообщить модератору

315. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от Аноним (36), 23-Ноя-20, 00:10 
Нет, чё-то у меня полыхнуло от твой некомпетентности.
Ответить | Правка | Наверх | Cообщить модератору

111. "Автор Python устроился на работу в Microsoft"  –1 +/
Сообщение от Аноним (18), 13-Ноя-20, 08:35 
А нефиг изменяемые объекты в параметры по-умолчанию совать. Это должно быть вообще запрещено провилами языка.
Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

175. "Автор Python устроился на работу в Microsoft"  +2 +/
Сообщение от Аноним (36), 13-Ноя-20, 13:08 
Теоретически это может оказаться неожиданным сюрпризом. Я просто не представляю, как можно изменять параметр по умолчанию (и в порядке нормы ожидать, что его не будет) и не переменную из области видимости.
Ответить | Правка | Наверх | Cообщить модератору

158. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от microcoder (ok), 13-Ноя-20, 11:53 
По другому и быть не должно. Функция определяется ОДНАЖДЫ, а не каждый раз когда происходит print(), стало быть массив (список) в сигнатуре функции также объявляется (создается) ОДНАЖДЫ, а затем только наполняется. Всё логично и лаконично.
Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

217. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от n00by (ok), 13-Ноя-20, 17:02 
Создаётся замыкание (в какой момент?), или аргумент - статическая переменная?
Ответить | Правка | Наверх | Cообщить модератору

282. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от userd (ok), 16-Ноя-20, 11:35 
> в какой момент?

В момент выполнения оператора def, связывающего код, параметры и имя функции в один объект.
Собственно этот объект имеет атрибут __defaults__ - кортеж со значениями по умолчанию для параметров, имеющих значения по умолчанию или None если таких параметров нет.

Ответить | Правка | Наверх | Cообщить модератору

289. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от n00by (ok), 17-Ноя-20, 14:32 
Спасибо. Значит на фазе трансляции (или как она в Питоне называется), до исполнения функции. Не удивлюсь, что причина одна -- что бы мусор не собирать.

"Явное лучше, чем неявное." (с)

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

Питон очень сложный для понимания язык, как по мне.

Ответить | Правка | Наверх | Cообщить модератору

290. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от userd (ok), 18-Ноя-20, 01:14 
> Не удивлюсь, что причина одна -- что бы мусор не собирать.

Это поведение документировано -
https://docs.python.org/2.7/tutorial/controlflow.html#defaul...
https://docs.python.org/3.8/tutorial/controlflow.html#defaul...

Мне лень всерьёз заниматься археологией,
вот накопал предложение по перевычислению мутабельных значений по умолчанию - https://mail.python.org/pipermail/python-ideas/2007-January/...

Впрочем, в Python найдутся и другие "сюрпризы" для брезгующих документацией.

> Питон очень сложный для понимания язык, как по мне.

В каждой избушке свои погремушки :)

Ответить | Правка | Наверх | Cообщить модератору

291. "Автор Python устроился на работу в Microsoft"  +/
Сообщение от n00by (ok), 18-Ноя-20, 11:18 
>> Не удивлюсь, что причина одна -- что бы мусор не собирать.
> Это поведение документировано -
> https://docs.python.org/2.7/tutorial/controlflow.html#defaul...
> https://docs.python.org/3.8/tutorial/controlflow.html#defaul...

Если вопрос задают стажёрам на собеседовании, понятно, что должно быть документировано. Однако, по ссылкам написано: волею богов Геба и Нут кошки являются священными животными! Ни слова о том, что мышки кушают содержимое амбаров фараона, а кошки ловят мышек.

> Мне лень всерьёз заниматься археологией,
> вот накопал предложение по перевычислению мутабельных значений по умолчанию - https://mail.python.org/pipermail/python-ideas/2007-January/...

Всерьёз, это надо копать исходники (или документацию) виртмашины. Но по ссылке действительно -- "deep-copied" и "performance reasons". То есть предположение про сборщик мусора в первом приближении оказалось верно.

> Впрочем, в Python найдутся и другие "сюрпризы" для брезгующих документацией.

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

Ответить | Правка | Наверх | Cообщить модератору

219. "Автор Python устроился на работу в Microsoft"  +1 +/
Сообщение от Аноним (219), 13-Ноя-20, 17:10 
Во всех языках объект в параметрах создаётся при каждом заходе в функцию и только в питоне зачем то один единственный раз
Ответить | Правка | К родителю #158 | Наверх | Cообщить модератору

191. "Автор Python устроился на работу в Microsoft"  –1 +/
Сообщение от commiethebeastie (ok), 13-Ноя-20, 13:50 
Странно, почему даже del(a) не помогает.
Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

194. "Автор Python устроился на работу в Microsoft"  +1 +/
Сообщение от Owlet (?), 13-Ноя-20, 14:02 
Перепишем:

_DEFAULT_A = []
def f(a = _DEFAULT_A):
    a.append(1)
    return len(a)

print(f())
print(f())
print(f())


Всё ещё сложно или дальше развивать? Этот пример - вопрос из собеседований на джуниора, лучше бы метаклассы упомянули в качестве хтонической дряни.

Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

236. "Автор Python устроился на работу в Microsoft"  +1 +/
Сообщение от Аноним (-), 13-Ноя-20, 18:42 
При запуске программы создается объект функции, а вместе с ней и список, который виден только в области видимости этой функции.
Так писать - это дурь, конечно же. Но задавать такие вопросы джуниорам... ну наверное тем, которых заведомо брать не хотят. :D
Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру