
Mark
19.10.2016
13:50:19

53r63rn4r
19.10.2016
13:53:51
Нужен разраб на фултайм удаленку уровня Middle or Junior Strong! Питон 3.5, более подробно о вакансии можно спросить у @Natalia_Maslennikova Ну и поспрашивайте у знакомых питонистов, мб кто-то как раз ищет работу, спасибо за внимание.

Dk
19.10.2016
13:55:01
Скиньте шкалу, по которой свой уровень определять

53r63rn4r
19.10.2016
13:55:58
Очень смешно

Google

Zart
19.10.2016
13:56:15

Петечка
19.10.2016
13:56:20
Дно
Дно дна

Dk
19.10.2016
13:56:29
Вообще, странное описание. Сколько вероятность, что нужен джангист?

Pavel
19.10.2016
13:56:58

Johnnie
19.10.2016
13:57:44
hr без аватарки не hr!

Zart
19.10.2016
13:58:00

Dk
19.10.2016
13:58:42

Mark
19.10.2016
13:58:57

Sergey
19.10.2016
15:15:23
В туториале джанги есть импорт from . import views, что это за точка?

Zart
19.10.2016
15:15:40
это относительный импорт
значит что надо из соседнего файла в каталоге импорт сделать
т.е. у тебя например есть пустой pkg\__init__.py, потом pkg\foo.py с from . import view и pkg\view.py - вот оно view.py и сымпортирует

b0g3r
19.10.2016
15:22:06
Зарт, можешь подкинуть опенсоурсные либы с хорошим интерфейсом, чтобы брать пример
Хочу написать клиент для opds

Google

Sergey
19.10.2016
15:22:32
чет отличается от import views

b0g3r
19.10.2016
15:22:39
Это такой rss, но для библиотек

Zart
19.10.2016
15:24:43

Sergey
19.10.2016
15:25:29

Zart
19.10.2016
15:25:40
до 2.5 включительно импорт фуу работал на соседний файл если он так звался
>>> __future__.absolute_import
_Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 16384)
западло в том, что это перекрывало топлевел имена

Yuryhalf
19.10.2016
15:26:16
тут есть люди кто работал с saltstack?

Sergey
19.10.2016
15:27:00
зря.
в 2.6 ругается при from . import something

Cykooz
19.10.2016
15:27:24

Zart
19.10.2016
15:27:24
сделай from __future__ import absolute_import в начале файла
ругаться не будет и импорты станут кошерными в пределах файла

b0g3r
19.10.2016
15:28:28

Dk
19.10.2016
15:28:50
Ну раз об импорте разговор зашёл.
Пишу два файла. В одном метод с time, во втором импортирую первый файл. Я обычно импортирую time и туда, и туда. Вопрос: что лишнее?

b0g3r
19.10.2016
15:29:34
Поэтому не уверен что такое сработает. Да и у rss предназначение другое, opds это эдакий каталог с навигацией

Mark
19.10.2016
15:45:10

Dk
19.10.2016
15:53:22
Но
Первый файл является модулем.
Надо дописывать time везде куда импортирую его?

Google

Dk
19.10.2016
15:55:37
Извините, за "кривой английский". Первый файл является движком для разных реализаций. Так лучше описать.
Можно как-то сделать, чтобы автоматом подтягивался time?

Zart
19.10.2016
16:00:11
я нихера не понял
foo.py: содержит import time
bar.py: содержит import foo
foo.time даст доступ к тайму импортнотому в фуу

Mark
19.10.2016
16:06:54

Amaro
19.10.2016
16:07:36

Dk
19.10.2016
16:08:09
Понял. Просто как-то пробовал и не сработало. Стал импортировать в оба файла.

Zart
19.10.2016
16:08:31

Amaro
19.10.2016
16:10:08

b0g3r
19.10.2016
16:10:11

Zart
19.10.2016
16:11:34
ммм... не уверен

Mark
19.10.2016
16:14:27

Mark
19.10.2016
16:29:50
Что-то у меня взрыв мозга по поводу интерпретатора:
когда я пишу def f(a): print(a+2), интерпретатор компилирует байткод и сохраняет его в свойствах объекта "функция f".
когда я потом пишу f(5), интерпретатор берет байткод, и выполняет его, используя заданные аргументы.
То есть получается, что интерпретатор одновременно и "компилирует", и "выполняет", в зависимости от того, какой код ему дают.
Так?

Zart
19.10.2016
16:30:52
да
внутри class Foo: тоже самое происходит
ты не обязан писать пачку def
можно смело их переименовывать, альясить, удалять:
>>> class A(object):
... def foo(self):
... return 'foo'
... bar = foo
... del foo
...
>>> a = A()
>>> a.bar
<bound method A.foo of <__main__.A object at 0x033EB9B0>>
>>> a.bar()
'foo'
>>> class adict(dict):
... __getattr__ = dict.__getitem__
... __setattr__ = dict.__setitem__
... __delattr__ = dict.__delitem__
...
>>>
>>> d = adict()
>>> d['a'] = 'b'
>>> d
{'a': 'b'}
>>> d.a
'b'
>>> d.c = 'c'
>>> d
{'a': 'b', 'c': 'c'}
>>>

Mark
19.10.2016
16:35:05
а если a=5, то это выражение тоже компилируется и выполняется, просто подряд?

Zart
19.10.2016
16:35:48
>>> debug = False
>>> class A(object):
... if debug: # один раз выполнится, в момент создания класса
... def debug(self):
... return 'debug'
...
>>> a = A()
>>> [i for i in dir(a) if not i.startswith('_')]
[]
далеко не все и не всегда

Admin
ERROR: S client not available

Google

Zart
19.10.2016
16:38:10
и нюансов хватает

Mark
19.10.2016
16:39:18
что ты имеешь в виду под словом "интерпретируется" ?
то есть 1. компилируется 2. выполняется.
>>> def f(a): print(a+5) #compile
>>> a = 5 # compile + run
>>> f(a) # run
правильно?
а, это он мне писал код, я не понял )

Pavel
19.10.2016
16:44:36

Mark
19.10.2016
16:45:16

Pavel
19.10.2016
16:45:55
f же уже скомпилирован в первой строке
компилируется код вызова.
>>> import dis
>>> dis.dis('f(a)')
1 0 LOAD_NAME 0 (f)
3 LOAD_NAME 1 (a)
6 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
9 RETURN_VALUE

Mark
19.10.2016
16:46:24
ааа, все, понял
короче всё сначала компилируется, потом все выполняется.

Pavel
19.10.2016
16:46:58
собственно, первая строка тоже выполняется, только она возвращает None и поэтому выхлопа нет.
eval()

Mark
19.10.2016
16:47:51
>>> dis.dis('a=5')
0 STORE_GLOBAL 13629 (13629)
или это я строку создал
Ок, так нельзя просто делать :)
Disassemble the bytesource object. bytesource can denote either a module, a class, a method, a function, or a code object. For a module, it disassembles all functions. For a class, it disassembles all methods. For a single code sequence, it prints one line per bytecode instruction. If no object is provided, it disassembles the last traceback.

Zart
19.10.2016
16:52:23

Pavel
19.10.2016
16:53:49

Mark
19.10.2016
16:54:54

Zart
19.10.2016
16:59:53
второй хочет скомпилированный код объект - compile('a=5', '<script>', 'exec')

Mark
19.10.2016
17:01:03
Спасибо, коллеги, день прошел не зря! ?

Google

Pavel
19.10.2016
17:08:49
ещё не вечер, ещё не вечер, ещё светла дорога и ясны глаза...

53r63rn4r
19.10.2016
17:09:22
Нужно было снять деньги
Тян забыла пароль от карты
4 цифры. ЧЕТЫРЕ, БЛЯТЬ

Mark
19.10.2016
17:10:21

53r63rn4r
19.10.2016
17:10:38
1000? Издеваешься?
Еще раз считай
Эта группа больше не существует