Size: a a a

2016 May 17

Z

Zart in rupython
но 2.7 слегка на особом положении нынче
источник

Z

Zart in rupython
айрон хотя и 2.7, но у него есть ключ -X:Python30 для эмуляции некоторых новинок 3.0. хотя 3.0 вышел мертворожденным 8)
источник
2016 May 18

PK

Pavel Kisialiou in rupython
привет
источник

PK

Pavel Kisialiou in rupython
буду очень благодарен, если кто-нибудь объяснит в двух словах, как работает "with... as"
источник

Z

Zart in rupython
источник

Z

Zart in rupython
но в целом это такой механизм перехвата исключений
источник

PK

Pavel Kisialiou in rupython
а можно простой пример?
источник

Z

Zart in rupython
lock = threading.Lock()
with lock:
   ...тут код для работы с общим ресурсом...
источник

Z

Zart in rupython
когда мы используем with с неким объектом, то этот объект должен быть "контекст менеджером". это значит что он обязан иметь несколько специальных методов, которые будут вызываться до и после
источник

Z

Zart in rupython
с момента появления with в питоне 2.5, с каждым релизом всё больше и больше объектов в стдлибе поддерживают этот механизм
источник

Z

Zart in rupython
самые часто используемые вещи - это with open('file', ...) as fp: - для того чтобы файловый дескриптор был закрыт в конце блока независимо от того выполнился ли он успешно, или бросил исключение
источник

PK

Pavel Kisialiou in rupython
спасибо большое)
источник

Z

Zart in rupython
threading.Lock/RLock, для блокировок потоков при работе с общими ресурсами
источник

PK

Pavel Kisialiou in rupython
у меня как раз встретилось с with open('file', ...) as..
источник

Z

Zart in rupython
в свежей альфе 3.6 питона вон scandir стал контекст менеджером - чтобы закрывать хендл на каталог
источник

Z

Zart in rupython
with open(name) as f:
   f.read/f.write...


это эквивалентно примерно такому коду:
try:
   f = open(name)
   f.read/f.write....
finally:
   f.close()
источник

Z

Zart in rupython
2.5й питон умел только одно выражение за раз: with X:
если надо было несколько, например
with open(input, 'r') as fi:
   with open(output, 'w') as fo:
       shutil.copyfileobj(fi, fo)


с 2.6 версии стало возможным писать так:

with open(input, 'r') as fi, open(output, 'w') as fo:
   shutil.copyfileobj(fi, fo)
источник

PK

Pavel Kisialiou in rupython
спасибо
источник

u

ultra noise in rupython
кто хорошо знаком с алхимией? хочу написать запрос типа

SELECT COUNT(*) AS C, PRODUCT
FROM TABLE
GROUP BY PRODUCT
ORDER BY C
LIMIT 10;


но тяжело представляю как в ней оформить order by c и как выводить результат
источник

KM

Khasan Mamaev in rupython
ultra noise
кто хорошо знаком с алхимией? хочу написать запрос типа

SELECT COUNT(*) AS C, PRODUCT
FROM TABLE
GROUP BY PRODUCT
ORDER BY C
LIMIT 10;


но тяжело представляю как в ней оформить order by c и как выводить результат
Вопрос конечно интересный) с химией я хорошо знаком, но вот с алхимией....
источник