
Aragaer
25.10.2018
11:54:10
сначала выбрать, потом вызвать

Alex
25.10.2018
11:54:14

Fedos
25.10.2018
11:54:16

Google

Aragaer
25.10.2018
11:54:26
ну так да, сначала вызывает все
потом выбирает результат
а надо сначала выбрать, а потом вызывать

Alex
25.10.2018
11:54:48

Fedos
25.10.2018
11:54:49
не понял
не
не смоущают)

Alex
25.10.2018
11:55:04
ты передаешь в random.choice результат выполнения своих функций

Kirill
25.10.2018
11:55:06

Alex
25.10.2018
11:55:12
они у тебя и выполняются по очереди

Aragaer
25.10.2018
11:55:32
>>> import random
>>> def func1():
... print(1)
...
>>> def func2():
... print(2)
...
>>> random.choice([func1, func2])()
1
сначала выбрать, потом вызвать

Google

Fedos
25.10.2018
11:55:40

Aragaer
25.10.2018
11:55:55
не просто убрать, а перенести

Fedos
25.10.2018
11:55:58
спасибо

Aragaer
25.10.2018
11:55:59
скобки = "вызвать"

Fedos
25.10.2018
11:56:00
получилось
да
я понял
спасибо от души)

Alex
25.10.2018
11:56:26

Fedos
25.10.2018
11:59:16
я бы до завтра думал в чем дело

Alex
25.10.2018
11:59:45
думать полезно

Fedos
25.10.2018
11:59:58
согласен )

Aragaer
25.10.2018
12:00:08
ну просто фраза "сначала выбрать, потом вызвать" была правильным ответом, но вот чтобы этот ответ понять, надо долго думать


Kosta
25.10.2018
12:03:10
Привет! У меня вот тоже с логами в воркере селери не понимание, может быть поможете :)
Не могу себе объяснить почему в лог пишется 4х одна и таже запись:
2018-10-24 16:11:21,112 - INFO - Content from https… has a length: 86984
2018-10-24 16:11:21,112 - INFO - Content from https… has a length: 86984
2018-10-24 16:11:21,112 - INFO - Content from https… has a length: 86984
2018-10-24 16:11:21,112 - INFO - Content from https… has a length: 86984
В модуле вызов логгера прописан в одном месте и выглядит так:
if response:
logger.info(f'Content from {url} has a length: {len(response[0])}')
Логгер создан в функции таска:
logger = logging.getLogger('Worker')
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler(LOG_PATH)
formatter = logging.Formatter('%(asctime)s - %(module)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
В модулях которые используются при вызове функции таск прописано:
logger = logging.getLogger('Worker.Crawler')
logger = logging.getLogger('Worker.Parser')
Псевдо код логики:
import parser
import crawler
def task()
logger = init_logger
data = parse()
payload = crawler(data)


Roman
25.10.2018
12:04:43
согласен )
если бы не было сайд-эффектов, то было бы без разницы по результату, а просто неаккуратно написано

Kosta
25.10.2018
12:06:11
простите, сломал разметку :(

BLVCK
25.10.2018
12:20:03

Валерий
25.10.2018
12:26:50
нужно чтобы товары показывалис на новой странице

Google

Валерий
25.10.2018
12:27:05
Как это можно сделать?
Испоьзовал django-filter, но там результат формируется на той же странице, что задаешь параметры для фильрации

Toha
25.10.2018
12:28:06
self.warrior -= 20

Fedos
25.10.2018
12:28:52

Toha
25.10.2018
12:29:01
короче

Fedos
25.10.2018
12:29:02
один хер же
мне так читабельней

Toha
25.10.2018
12:30:04
странно вообще у тебя сделано)
у варриора 2 хелса

Fedos
25.10.2018
12:31:00
чего
там 2 варриора

Toha
25.10.2018
12:31:07
1

Fedos
25.10.2018
12:31:09
у обоих по 100
варриор1 и варриор2

Toha
25.10.2018
12:31:34
и оба в классе Warrior?

Fedos
25.10.2018
12:31:56
да)
а вар
это обьект

Toha
25.10.2018
12:32:08
сиамские близнецы чтоли?

Fedos
25.10.2018
12:32:11
ну я знаю что это тупо

Google

Fedos
25.10.2018
12:32:14
да
я просто хотел реализовать задумку

Toha
25.10.2018
12:32:25
ахуеть :)

Fedos
25.10.2018
12:32:32
а сейчас сделаю
отедно обьекты
отдельно

Admin
ERROR: S client not available

Toha
25.10.2018
12:33:42
Сделай вместо health2 armor)
и вот у тебя варриор может быть бронированным)

Fedos
25.10.2018
12:34:35
спасибо за идею
сделаю
может быть(
))

Toha
25.10.2018
12:35:01
А я могу такое сделать, но сделать между ними взаимодействие - для меня боль
там же нужно как то расстояние между ними считать уметь
А для этого нужно быть умным
И сделать класс CombatManager, который будет в цикле апдейтить твоих варриоров
В нем сделать метод update(), который в цикле дергает метод update() в классе warrior
и там уже реалиовать для каждого из варриоров свою логику
Почитал про расстояния. В принципе, несложно :)

Google

Jon
25.10.2018
13:08:11
Нужен разработчик, чтобы сделать форк PIVX. Подробности в ЛС.

Gennady
25.10.2018
13:09:21
Кажется это пишется даже по другому.

Jon
25.10.2018
13:11:08
Опечатка

hram
25.10.2018
13:13:47
писал кто на питоне парсер поисковой выдачи, какими библами пользовались? интересует google, aol, yahoo.

Toha
25.10.2018
13:17:19
есть кравлер

?? Eugene
25.10.2018
13:17:44
requests, bs4, что еще надо =)

Toha
25.10.2018
13:17:52
https://habr.com/post/280238/

qwertyOleg
25.10.2018
13:37:41
# Why Python is Great: Namedtuples
# Using namedtuple is way shorter than
# defining a class manually:
>>> from collections import namedtuple
>>> Car = namedtuple('Car', 'color mileage')
# Our new "Car" class works as expected:
>>> my_car = Car('red', 3812.4)
>>> my_car.color
'red'
>>> my_car.mileage
3812.4
# We get a nice string repr for free:
>>> my_car
Car(color='red' , mileage=3812.4)
# Like tuples, namedtuples are immutable:
>>> my_car.color = 'blue'
AttributeError: "can't set attribute"

Atabiy
25.10.2018
13:39:46
Какие заказы по питону в основном распространены на рынке в данный момент?

ilya
25.10.2018
13:40:21
Я парсер для инстаграмма делал

Роман
25.10.2018
13:47:03

Atabiy
25.10.2018
13:48:01
На ботов заказы есть?
(не в мизерных количествах)

hram
25.10.2018
13:49:08
мне нужно только url достать из поисковой выдачи.
думаю может по view souce страницы достать ссылки...

?? Eugene
25.10.2018
13:50:02
так это несложно, в 3 строки
вместе с импортами =)

hram
25.10.2018
13:51:11
да, только ссылки на следующие страницы отсутствуют

?? Eugene
25.10.2018
13:52:59
а у меня присутствуют