Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2014 22:51:24

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

py.user.next
А в эту строку проник int, который знает, как были прочитаны данные

Типа модуль чтения должен, кроме данных, передавать ещё и формат этих данных?



Офлайн

#2 Июнь 25, 2014 23:00:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9896
Репутация: +  855  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Budulianin
Tuple отличается от списка, только тем, что у него нет методов для изменения своего содержимого.

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

>>> sys.getsizeof((1, 2)) * 10000
320000
>>> sys.getsizeof([1, 2]) * 10000
400000
>>>



Офлайн

#3 Июнь 25, 2014 23:01:55

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

py.user.next
Есть понятие модуля, прочности модуля и сцепления модулей. Где модуль - это не файл, а такая сущность. Модулем может быть функция, может быть группа функций, может быть файл с функциями, а может быть группа таких файлов.
Я подразумевал не модули, а квантование по зонам ответственности как в телах циклов, внутри with, внутри try и т.п. В нашем примере введение дополнительных модулей чрезмерно, имхо, как и забота о памяти.
py.user.next
А в эту строку проник int, который знает, как были прочитаны данные.
Всё что он знает: данные приводимы к int. Честно говоря, колебался, не написать ли cd == ‘1’, но это показалось еще большим сужением.

Отредактировано Shaman (Июнь 25, 2014 23:05:01)

Офлайн

#4 Июнь 25, 2014 23:03:41

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Budulianin
Только мне не нравится смотреть на несколько однотипных скобок подряд, да и не только мне.
Вполне решается записью
foo(tuple(1, 2, 3))

Офлайн

#5 Июнь 25, 2014 23:14:55

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Shaman
Вполне решается записью
foo(tuple(1, 2, 3))

Уверен ? :D



Офлайн

#6 Июнь 25, 2014 23:17:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9896
Репутация: +  855  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Budulianin
Типа модуль чтения должен, кроме данных, передавать ещё и формат этих данных?

Он должен возвращать максимально общий формат. И модуль обработки должен принимать максимально общий формат. Если форматы не совпадают, должно быть промежуточное преобразование.

Shaman
Я подразумевал не модули, а квантование по зонам ответственности как в телах циклов, внутри with, внутри try и т.п.

Ответственность должна лежать на модулях. Если тебе надо что-то сделать, то это должен выполнить модуль.



Отредактировано py.user.next (Июнь 25, 2014 23:20:28)

Офлайн

#7 Июнь 25, 2014 23:18:37

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Budulianin
Если они есть, то это не значит, что их нужно пихать во все дырки.
Тут люди учатся -как раз тот случай когда нужно.

Офлайн

#8 Июнь 25, 2014 23:19:02

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

py.user.next
Он не может измениться и привести к ошибке. Ты их можешь передавать, точно зная, что они нигде внутри не изменятся.
Он быстрее, меньше памяти занимает, хешируется (для ключей словаря).

Да понятно это всё. Я имел в виду “In practical terms, they have no methods that would allow you to change them”



Офлайн

#9 Июнь 25, 2014 23:24:59

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9896
Репутация: +  855  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!

Shaman
Честно говоря, колебался, не написать ли cd == ‘1’

Это тоже неправильно.

def edges(data):
    for r, rd in enumerate(data, 1):
        for c, cd in enumerate(rd, 1):
            if cd:
                yield r, c
Вот так.



Офлайн

#10 Июнь 25, 2014 23:25:39

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

помогите гуманитарию на экзамене!


Budulianin
Уверен ?
Пардон - я это делал с генераторами.
tuple(i for i in xrange(3))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version