Kop
С чего ты решил?
Что именно ? Я про авторизацию через фейсбук в целом говорю
🍁 Jaŭhien
Там же не только авторизация
🍁 Jaŭhien
Ну ладно, мы видимо каждый о своем)
Kop
Похоже)))
Spirit
Человеку ботнет мб нужен
Spirit
Там никаким графом не пахнет
Spirit
🍁 Jaŭhien
Tishka17
Kop
XSelent
Ничего общего с ботнетом в моих мыслях нет, хочу написать бота который будет постить в группы
Spirit
Spirit
По моему для апок нет таких пермишенов
Spirit
Так что один хер придётся хедлесс юзать
Kop
Spirit
А мб и нет
XSelent
Tishka17
Ну в свои группы наверно можно писать
Tishka17
Но не уверен
Spirit
t.me/scrapy_python
XSelent
Ivan
Пасантре, я джаваскриптер и ничего не понимаю
Julian 🏳️🌈
Попробуй сложить число и строку и все поймешь
Ivan
В общем - хочу иметь индекс элемента а колбэке, ан нет какая-то хрень
Андрей
Ivan
[marker.observe(functools.partial(on_location_changed, ix), 'location') for (ix, marker) in enumerate(markers)]
Ivan
Хочу чтоб в лямбде не один было всегда, а еще ноль иногда
Julian 🏳️🌈
import random
Ivan
import random
😃 ну рили - ожидаю, что в двух случаях в колбек разый индекс передастся, а хренушки
Ivan
у меня два маркера прост
Aragaer
мне что-то подсказывает, что там одна единственная лямбда
Ivan
как одна? Онаж создается дважды, пока итерируется
Aragaer
неа
Aragaer
я попробовал
Aragaer
одна единственная лямбда, с последним индексом
Ivan
В джаваскрипте по крайней мере былоб так. Подскажите плз несведующему как решить задачу
Aragaer
functools.partial
Aragaer
>>> def f(i, x):
... print(i, x)
...
>>> s = [functools.partial(f, i) for i in range(3)]
>>> s[0](3)
0 3
>>> s[1](3)
1 3
Aragaer
тут действительно создаются разные
Aragaer
то есть в твоем случае marker.observe(functools.partial(on_location_changed, ix), 'location')
Ivan
top top top заработало, оч мощный подгон спасибо
Ivan
Правда как оно в питоне работает по умолчанию пока не понял, но уже ближе)
Aragaer
ну functools.partial возвращает "функцию", в которую осталось передать то, что не было привязано сразу
Ivan
аля каррирование слева. Буду курить functools для комфортного кодинга с устоявшимися в голове абстракциями)
Daniil
Иногда на собесах подобное спрашиваю
Daniil
[marker.observe(lambda e: on_location_changed(ix, e), 'location') for (ix, marker) in enumerate(markers)]
Ivan
спасибо еще раз
Aragaer
последнюю?
Aragaer
хотя да, много
Tishka17
Ну типа ix - переменная, они захватили её, а не её значение
Aragaer
>>> [lambda x: print(i, x) for i in range(3)]
[<function <listcomp>.<lambda> at 0x7f4894453c80>, <function <listcomp>.<lambda> at 0x7f4894453d08>, <function <listcomp>.<lambda> at 0x7f4894453d90>]
Aragaer
угу
Aragaer
а поскольку после этого она перестала существовать, то получилось много замыканий
Aragaer
а в partial привязывается именно значение
Ivan
В джаваскрипте вот примитивные типы передаются не по ссылке, а по значнию
Tishka17
Да
Tishka17
А в питоне нет примитивов
Ivan
Aragaer
ну так а тут ничего не передается
Aragaer
ты создал лямбду, но ты не передавал в нее ix
Aragaer
а привязал его
Ivan
ну в области видимости можно творить дичь и она пройдет
Tishka17
В жс так же будет, если в цикле создавать функции
Tishka17
Они все захватят переменную
Ivan
В зависимости от того, что использовать let или var)
Ivan
Если let - то в области видимости будет то, что там написал
Tishka17
Последний раз когда я писал на жс, там не было лет
Tishka17
И в питоне нет
Ivan
Счастливый человек))