
Sheridan
22.01.2019
23:04:58
как раз классы атомарны
вот всё что мне надо от помошника потоков

Google

Donaudampf
22.01.2019
23:07:28
ThreadHelper практически мимикрирует под Thread

Alex
22.01.2019
23:07:33
ты можешь объяснить а на зачем ты сделал класс ThreadHelper, который делает все то же что и стандартный тред?
и не несет никакой смысловой нагрузки
afk

Sheridan
22.01.2019
23:10:10
а - архитектура, п - плпнирование
Как бы банально это не звучало

Donaudampf
22.01.2019
23:11:46

Alex
22.01.2019
23:11:55
б) в итоге ты получил кусок слабоуправляемого говна, т.к. кроме как запустить тред ты с ним больше ничего сделать не можешь

Sheridan
22.01.2019
23:12:20

Donaudampf
22.01.2019
23:12:23
тут скорее пп - преждевременное планирование

Alex
22.01.2019
23:12:25
и то что он у тебя вывалился ты не узнаешь

Google

Sheridan
22.01.2019
23:12:58

Donaudampf
22.01.2019
23:13:00

Alex
22.01.2019
23:13:13
вот теперь я точно afk

Sheridan
22.01.2019
23:13:32
всё и сразу невозможно к сожалению

Владимир
22.01.2019
23:15:01
Какие разделы математики нужны программисту ? ?
Конечные автоматы, комбинаторика, теория графов, тер. вер, мат. стат, теория алгоритмов, ангем, линейка, численные методы. Обычно эту базу прогоняют в универе. Качество такого вдалбливания минимально. Но хотя остаточные знания потом помогут искать нужную информацию в правильном направлении. Где что пригодится зависит от типа ПО, который будешь делать. Может кроме алгоритмов и структур данных то и не понадобиться ничего, а может численные методы будут постоянно нужны, а может геометрические решатели делать придется и т.д. Все зависит от задач.

Donaudampf
22.01.2019
23:16:08
а по поводу разных аргументов - я предполагаю, это тоска по перегрузке функций в плюсах. В питоне этого нет, функция получает набор аргументов и решает, что с ним делать

Sheridan
22.01.2019
23:16:12
Конечные автоматы, комбинаторика, теория графов, тер. вер, мат. стат, теория алгоритмов, ангем, линейка, численные методы. Обычно эту базу прогоняют в универе. Качество такого вдалбливания минимально. Но хотя остаточные знания потом помогут искать нужную информацию в правильном направлении. Где что пригодится зависит от типа ПО, который будешь делать. Может кроме алгоритмов и структур данных то и не понадобиться ничего, а может численные методы будут постоянно нужны, а может геометрические решатели делать придется и т.д. Все зависит от задач.
Все бери и проси ещо. Я вот жалею щас что ушол с третьего курса ПМ на АСОиУ, так как считал что мало практики.

Donaudampf
22.01.2019
23:16:51
как вариант - можно ещё использовать классметоды и что-то типа шаблона Builder емнип

Sheridan
22.01.2019
23:17:27

Владимир
22.01.2019
23:17:33

Sheridan
22.01.2019
23:18:31

Владимир
22.01.2019
23:18:32

Sheridan
22.01.2019
23:19:16

Владимир
22.01.2019
23:19:19
И кстати, все у него хорошо. Просто надо понимать как работает линеаризация в МРО, чтобы не напарываться на странное поведение. Множественное наследование во всех языках может свинку подсунуть

Sheridan
22.01.2019
23:20:35
вот я в питоне не понимаю

Google

Владимир
22.01.2019
23:21:11

Sheridan
22.01.2019
23:21:21
и хотел писать так

Владимир
22.01.2019
23:21:32
там очень простой алгоритм

Sheridan
22.01.2019
23:21:37
но питон такое не тянет без сайдэффектов


Donaudampf
22.01.2019
23:22:23
может поможет что-то типа этого, если хочется один класс создавать кучей разных способов
If you create new objects inside your __init__ it may be better to pass them as arguments and have a factory method instead. It separates business logic from technical details on how objects are created.
In this example __init__ accepts host and port to construct a database connection:
class Query:
def __init__(self, host, port):
self._connection = Connection(host, port)
The possible refactoring is:
class Query:
def __init__(self, connection):
self._connection = connection
@classmethod
def create(cls, host, port):
return cls(Connection(host, port))
This approach has at least these advantages:
• It makes dependency injection easy. You can do Query(FakeConnection()) in your tests.
• The class can have as many factory methods as needed; the connection may be constructed not only by host and port but also by cloning another connection, reading a config file or object, using the default, etc.
• Such factory methods can be turned into asynchronous functions; this is completely impossible for __init__.


Владимир
22.01.2019
23:22:47

В.
22.01.2019
23:24:07
что я не так делаю? отправляю запрос на скрипт питоновский, но на стороне сервера ничего не принимается
$.ajax({
async: true,
type: "POST",
url: "/url/local/bin/script.py",
data: JSON.stringify({'url': 'Привет!'}),
dataType: "json",
success : function() { document.write("текст");
}
});
прием:
import json, sys
my = json.load(sys.stdin)
print('Status: 200 OK')
print('Content-Type: text/json')

Sheridan
22.01.2019
23:24:15
https://youtu.be/WiKOLyi_XfU

Владимир
22.01.2019
23:24:35

Donaudampf
22.01.2019
23:25:18

Владимир
22.01.2019
23:25:32

Sheridan
22.01.2019
23:25:35

Владимир
22.01.2019
23:26:16
синглдиспатч - это не перегрузка
>>> @fun.register
... def _(arg: int, verbose=False):
... if verbose:
... print("Strength in numbers, eh?", end=" ")
... print(arg)
...
>>> @fun.register
... def _(arg: list, verbose=False):
... if verbose:
... print("Enumerate this:")
... for i, elem in enumerate(arg):
... print(i, elem)

Sheridan
22.01.2019
23:26:28

Donaudampf
22.01.2019
23:26:55

Sheridan
22.01.2019
23:26:58

Google

Sheridan
22.01.2019
23:27:10

Владимир
22.01.2019
23:27:18
Уж что-что, а изголяться с кодом в питоне можно на всякий лад.


Sheridan
22.01.2019
23:29:32
If you create new objects inside your __init__ it may be better to pass them as arguments and have a factory method instead. It separates business logic from technical details on how objects are created.
In this example __init__ accepts host and port to construct a database connection:
class Query:
def __init__(self, host, port):
self._connection = Connection(host, port)
The possible refactoring is:
class Query:
def __init__(self, connection):
self._connection = connection
@classmethod
def create(cls, host, port):
return cls(Connection(host, port))
This approach has at least these advantages:
• It makes dependency injection easy. You can do Query(FakeConnection()) in your tests.
• The class can have as many factory methods as needed; the connection may be constructed not only by host and port but also by cloning another connection, reading a config file or object, using the default, etc.
• Such factory methods can be turned into asynchronous functions; this is completely impossible for __init__.
Мысль понял, пересплю с ней. Но пока что выглядит это как способ нагенерировать кучу кода типа
class cls123:
def __init__(self, param1, paramn):
self.param1 = param1
self.paramn = paramn


Владимир
22.01.2019
23:29:42
910 оклик? У меня только год прожил. Свичи плохие в них(

Sheridan
22.01.2019
23:30:06
но думаю уже поменять
чтото стало нехватать управляемой подсветки...

Владимир
22.01.2019
23:30:49
920G
там плохие свичи ставят((( троить начали очень быстро.

Sheridan
22.01.2019
23:31:13
хз, третий год уже вроде, норм...

Admin
ERROR: S client not available

Владимир
22.01.2019
23:31:19
Купил китайский нонейм какой-то, а весной всталю черри в тело оклика)

Donaudampf
22.01.2019
23:31:36

Sheridan
22.01.2019
23:32:00

Владимир
22.01.2019
23:32:06

Donaudampf
22.01.2019
23:32:13

Владимир
22.01.2019
23:32:15

Sheridan
22.01.2019
23:32:20
фуф

Владимир
22.01.2019
23:32:21

Google

Donaudampf
22.01.2019
23:32:22

Sheridan
22.01.2019
23:33:11
да хер с ними с методами, могу переименовать
несложно
гораздо неприятнее щас рефакторить кучу классов, так как множественное наследование ой

Donaudampf
22.01.2019
23:33:53
человек хочет __init__(self, a) и __init__(self, a, b, c) в одном классе, ну или что-то подобное

Sheridan
22.01.2019
23:34:14

Donaudampf
22.01.2019
23:34:36

Sheridan
22.01.2019
23:35:01
должно пройти время и случиться несколько раз вот такое

Владимир
22.01.2019
23:35:26

Donaudampf
22.01.2019
23:35:50
можно какой-нибудь игрушечный пример с иерархией и аргументами, где с super возникли проблемы

Artem
22.01.2019
23:35:57

Donaudampf
22.01.2019
23:36:12

Sheridan
22.01.2019
23:36:32

Donaudampf
22.01.2019
23:37:13

Sheridan
22.01.2019
23:37:50

Владимир
22.01.2019
23:37:51
Вообще перегрузка нарушает принцип единой ответственности. И в питоне с его динамичностью не сильно то нужна

Sheridan
22.01.2019
23:38:05
языке который ограничивает программиста... ну такое себе

Владимир
22.01.2019
23:38:29

Sheridan
22.01.2019
23:38:38

Artem
22.01.2019
23:38:39

Sheridan
22.01.2019
23:38:48
нафигач строчку больше 79 символов