
Andrei
09.06.2016
14:17:37
с точки зрения ООп
между квадратом и прямоугольником нет отношений.

Aragaer
09.06.2016
14:17:56
лисков сабститьюшн как раз про наследование

Andrei
09.06.2016
14:17:57
потому что в любуюсторону нарушается LSP

Google

Aldar
09.06.2016
14:18:45
LSP говорит о том, что при замене родителя на наследника ничего в поведении измениться не должно

Aragaer
09.06.2016
14:18:51
http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle
вот ровно эти квадраты и прямоугольники

Aldar
09.06.2016
14:19:12
то есть весь интерфейс должен сохранять свою логику работы

Gnobitel
09.06.2016
14:19:52
Блииин, но это уж не то как ты объяснил точно)

Aragaer
09.06.2016
14:21:20
второй ответ - ровно то, что я и объяснил

Марк
09.06.2016
14:21:38

Aragaer
09.06.2016
14:21:39
void invariant(Rectangle& r) {
r.setHeight(200);
r.setWidth(100);
assert(r.getHeight() == 200 and r.getWidth() == 100);
}

German
09.06.2016
14:52:52
а как правильно проверить, есть ли третий элемент списка, учитывая, что его может не быть? чтобы не вывалилось с ошибкой, если он отсутствует
а. len подойдёт, наверное

Kolyann
09.06.2016
15:01:11
либо в эксепшон обернуть

Тёма
09.06.2016
15:05:47
знает кто какие места где в мск можно немного сыра достать европейского?
без шуток, серьезно

Google

Александр
09.06.2016
15:06:33
пс, парень
я знаю, что в подвале за углом возле набережной на ленина
можно эдыгейский сыр купить
и запрещенные к ввозу консервы
с красной рыбой
??????????

Dmitry
09.06.2016
15:07:09
а как правильно проверить, есть ли третий элемент списка, учитывая, что его может не быть? чтобы не вывалилось с ошибкой, если он отсутствует
solea:~ cadmi$ python
Python 2.7.11 (default, Dec 26 2015, 17:47:15)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> l = [1, 2, 3]
>>> l[2] if len(l) > 2 else -1
3
>>> l[3] if len(l) > 3 else -1
-1
>>> (l[2:]+[-1])[0]
3
>>> (l[3:]+[-1])[0]
-1
>>>

Тёма
09.06.2016
15:07:31

Dmitry
09.06.2016
15:08:20

German
09.06.2016
15:09:21
ну с len понятно, я думал, может какой-то более правильный способ есть
какой-нибудь is_exist, чтобы исключения не вызывало

Dmitry
09.06.2016
15:09:41
ок, больше никогда никому не буду отвечать. всем всё ж понятно
только блеать про logging дважды в неделю узнаЮт

German
09.06.2016
15:10:02
ну просто я про len выше сам написал)

Aragaer
09.06.2016
15:10:08
http://stackoverflow.com/questions/5125619/why-list-doesnt-have-safe-get-method-like-dictionary
говорят, что лучше через try except

German
09.06.2016
15:10:31
ну не. уж лучше len

Dmitry
09.06.2016
15:10:32

German
09.06.2016
15:11:13
а. не дочитал, да. сорри

Aragaer
09.06.2016
15:11:23
я видел как минимум один случай в питоне, когда эксепшн реально лучше проверки

Google

German
09.06.2016
15:11:37

Aragaer
09.06.2016
15:11:49
условно - если ты ожидаешь, что из 100500 попыток обращения у тебя будет 100000 промахов, то да, проверку
если из 100500 будет только 500 промахов, то эксепшн

German
09.06.2016
15:14:35
мне всегда казалось, что исключения - это самый крайний случай
и вообще недоработка в архитектуре

Aragaer
09.06.2016
15:15:02
один из принципов питона - лучше просить прощения, чем спрашивать разрешения
хочешь открыть файл - открой. Нету файла? тогда упс

German
09.06.2016
15:15:45
ну вот лучше перед открытием проверить, что он есть, чем вызывать эксепшн при ошибке

Марк
09.06.2016
15:15:53
Съуяли?

Aragaer
09.06.2016
15:15:56
промах при эксепшне это обычно медленно, но подготовка к эксепшну быстрее, чем ветвление

Oleksandr?
09.06.2016
15:16:08
пацаны, а есть аналогичный чатик для protractorJS
или ангуляр?

Aragaer
09.06.2016
15:16:35
если ты реально ожидаешь, что в 99% будет сразу все работать, то лучше ловить эксепшн в 1%, чем делать тормозные ветвления во всех 100%

German
09.06.2016
15:16:59
пожалуй

THE
09.06.2016
15:17:12
на анг есть

Oleksandr?
09.06.2016
15:17:16
кстати ловить эксепшен дороже намного чем иф элс

Aragaer
09.06.2016
15:17:27
если он случился - да
если не случился - нет

Oleksandr?
09.06.2016
15:17:41
то есть сама проверка try - быстро, а если вылетело - то капец

German
09.06.2016
15:18:12
надо пруфы найти

Google

Марк
09.06.2016
15:18:16

Oleksandr?
09.06.2016
15:18:32
хороший файл
и имя интересное

Aragaer
09.06.2016
15:19:12
http://stackoverflow.com/questions/7604636/better-to-try-something-and-catch-the-exception-or-test-if-its-possible-first

German
09.06.2016
15:21:03
Easier to ask for forgiveness than permission. This common Python coding style assumes the existence of valid keys or attributes and catches exceptions if the assumption proves false. This clean and fast style is characterized by the presence of many try and except statements. The technique contrasts with the LBYL style common to many other languages such as C.
ну хуй знает..
после C непривычен такой подход, да

Jonh
09.06.2016
15:22:50
Все равно исключения - хуево с архитектурной точки зрения

Марк
09.06.2016
15:22:56
Кстати, такой глупый вопрос: есть файл у него есть инода. Я открываю файл. Инод становится две?

Jonh
09.06.2016
15:23:18
Одна из немногих вещей, которая напрягает в питоне

Admin
ERROR: S client not available

Марк
09.06.2016
15:23:46
Чем?

German
09.06.2016
15:23:49
меня теперь тоже напрягает, блин

Jonh
09.06.2016
15:24:51

Марк
09.06.2016
15:25:13
Есть файл с инодой. Я открываю дескриптор - инода создается или нет новая?
Давайте точно разберемся

Jonh
09.06.2016
15:27:05

Марк
09.06.2016
15:27:32
Я не знаю. Это вопрос
Формально должна
Когда открываешь файл, создается инода

Google

Марк
09.06.2016
15:29:30
Дескрипторы, файлы, пайпы - все помечено

Dmitry
09.06.2016
15:30:23
по-моему, тут кто-то путает файловый дескриптор и индексный дескриптор, не?
чего ради при открытии существующего файла на чтение должна создаваться еще одна inode на файловой системе то?

Jonh
09.06.2016
15:31:19

Марк
09.06.2016
15:31:46

Dmitry
09.06.2016
15:31:58
ой, всё :)
в общем да, при открытии файла дескриптор создается
но это не inode и создается он вовсе не там, где эти inode вообще лежат

Марк
09.06.2016
15:32:52
Да хоть скажи, где почитать

Dmitry
09.06.2016
15:34:19
когда мы были молодые и худые, все обычно читали Робачевского, например

Марк
09.06.2016
15:35:01
Бля, я школьник
В целом довольно занятный вопрос, что происходит при открытии дескриптора файла.

Dmitry
09.06.2016
15:36:24
inode - на файловой системе, хранится на диске, это метаинформация

Марк
09.06.2016
15:36:36
Да

Dmitry
09.06.2016
15:37:35
файловый дескриптор - неотрицательное целое число, которое возвращают системные вызовы, такие, например, как создание файла, открытие, открытие пайпа и т.п., с этим дескриптором потом работают другие системные вызовы, такие как read write всякие
файловый дескриптор существует не на диске и файловой системе, а в памяти, скажем так, в ядре (не так, но пусть будет упрощено)
совершенно разные вещи, в общем, хуле бы их в одну кашу валить - совершенно непонятно

Марк
09.06.2016
15:40:54
С файловым понятно. Что с индексным?

Dmitry
09.06.2016
15:44:19
ты Робачевского скачал уже?

Andrey
09.06.2016
15:44:22

Dmitry
09.06.2016
15:44:30
или вслух читать, за $5 ?
inode - это грубо говоря, файл на файловой системе. не имя, а именно inode
имен у файла может быть несколько, все они будут показывать на один и тот же inode