Val
Парни. Всем спасибо, решено!
@asmmsc подсказал вещь, о которой я не догадался сам - type(self)
Asiman
тг затер нижние подчеркивания
лол, я полез тебя исправлять, а у самого то же самое, нижние подчеркивания исчезли
Robert
тг затер нижние подчеркивания
Поэтому надо моноширинным всё делать.
Bogdan
self.__class__.__name__ он про это
Robert
не шарю в вёрстке
self.__class__.__name__ Ctrl+shift+M или по пикче.
Val
test
Val
. test.
Andrii
Извиняюсь. Понимаю что тут не экстрасенсы. Пробую сформулировать точнее - имел ввиду self. Сам экземпляр класса может знать своë имя self? Т.е. где-то там, внутри себя он это хранит? Мне ООП чертовски трудно дается
Считай, что никакого ООП нет, и вызов метода через точку просто синтаксический сахар над его явной передачей первым аргументом: In [1]: class Test: ...: def id(self, a): ...: return a ...: In [2]: test = Test() In [3]: test.id(12) Out[3]: 12 In [4]: Test.id(test, 12) Out[4]: 12 И 3 и 4 просто эквивалентные записи, если мы знаем класс
Andrii
Просто писать как в 4 больше шума
Bogdan
что бы мы без него делали
Val
Я не очень понял. Т.е нихрена не понял(((
Andrii
Никто же не мешает нам написать, например test.id = lambda v: v + 1 и теперь test.id(12) будет возвращать 13
Bogdan
Я не очень понял. Т.е нихрена не понял(((
не думаю что тебе сейчас очень важно знать что там под капотом
Andrii
Я не очень понял. Т.е нихрена не понял(((
Считай, что объект это просто dict с более простым синтаксисом для работы с ним
Andrii
не думаю что тебе сейчас очень важно знать что там под капотом
ИМХО, так намного проще, никакого ООП нет, есть только процедуры и функции.
Bogdan
ИМХО, так намного проще, никакого ООП нет, есть только процедуры и функции.
ну по сути то под что пайтон изначально создавался парадигмально
Andrii
как в пайтоне не хватает =>
=> тоже лишнее, куда проще писать (+ 1)
Bogdan
=> тоже лишнее, куда проще писать (+ 1)
да но если есть => тебе не надо писать lambda x
Bogdan
x => x++
Andrii
x => x++
Это я понял, но даже x => x + 1 дофига писанины, проще (+ 1) как в Haskell
SSS
лямбда функции прочитай
Ок. А от куда 12 взялось?
Bogdan
он явно его задал там
Bogdan
и у него там выполняется лямбда которая добавит к 12, 1 и результатом будет 13
Andrii
А что за значение Ламбда? И от куда взялось 12?
Это тоже синтаксический сахар a = lambda x: x + 1 def b(x): return x + 1 a и b одно и то же
Bogdan
Это я понял, но даже x => x + 1 дофига писанины, проще (+ 1) как в Haskell
ну это уже проблемы императивного подхода и тд, в отличии от хаскеля где в 1 очередь всё построено было на лямбдах, чистых функциях и тд
Val
Считай, что объект это просто dict с более простым синтаксисом для работы с ним
Я уже где-то слышал краем уха про такой подход к пониманию объектов. Можно подробнее? Я чуствую что прямо сути какой-то не улавливаю
SSS
он явно его задал там
Я к тому, что: test.id = lambda v: v + 1 Переменной test.id присваивается значение lambda v. Это я так понял функция какая то?
Bogdan
а то что используют по факту это всё для упрощения
Bogdan
это как в шарпе вместо структуры Int32 можно написать просто int
Andrii
Я к тому, что: test.id = lambda v: v + 1 Переменной test.id присваивается значение lambda v. Это я так понял функция какая то?
Тут просто я не хочу объявлять функцию, присваивать ей имя... Но можно и так def dummy_function(v): return v + 1 test.id = dummy_function del dummy_function
SSS
Понев
Bogdan
Тут просто я не хочу объявлять функцию, присваивать ей имя... Но можно и так def dummy_function(v): return v + 1 test.id = dummy_function del dummy_function
лямбда исчисление это одно из самых полезных вещей что завезли в программирование
Andrii
в основе пайтона ООП вот и весь прикол
И в основе Smalltalk. Собственно говоря, Анак Кей, когда придумал термин ООП, он имел в виду именно такой простой мощный механизм. А не ту хрень, которую изобрели в Simula и которая потом пошла во всякие Java, C#, ...
Bogdan
а почему?
потому что облегчает жизнь
Bogdan
анонимные функции помогают заменить кучу бесполезного кода
Asiman
анонимная функция это лямбда?
Asiman
зачем называть что-то лямбдой? какое-то изотерическимагическое слово
Andrii
зачем называть что-то лямбдой? какое-то изотерическимагическое слово
Ну потому что есть лямбда исчисление Черча, откуда и пошло имя
SSS
Программист
Это я понял. Веб, искусственный интеллект, по пишешь? Я в этом плане
Bogdan
а что если это на самом деле не Андрей, а его разработка
Asiman
а что если это на самом деле не Андрей, а его разработка
какого это чувствовать себя тупее разработки настоящего Андрея?
Bogdan
все страхи ученых становляться реальностью
Гюнтер о'Дим
при нажатии на кнопку место изменения текста, все пропадает, что делать?
Val
Что такое dict знаешь?
Да, конечно знаю - это словарь. Попытаюсь своими словами: Это изменяемый объект, который может содержать другие объекты. И который отличается например от массива тем, что его внутрянка не портирована по порядку(т.е. не имеет смысла обращаться к 0-му/1-му/n-му элементу словаря). В отличае от этого, словарь(dict) имеет другую структуру для поиска, это пара ключ-значение. Поиск в словаре происходит по ключу. Для примера: >>Dictionary = {a:1, b:"хуй", name:"Bob"} >>Dictionary [a] >> 1 Пы.Сы: Я правильно излагаю свои мысли? Из этого можно оценить глубину понимания словаря мной?
Andrii
Ты пишешь своими словами, но получается как-то слишком книжно. Но по факту class Test(): def __init__(self, value): self.value = value def add(self, v): return self.value + v test = Test(12) test.add(1) примерно отвечает такому коду def Test_add(self, v): return self['value'] + v def Test_init(value): return { 'value': value, 'add': Test_add, } test = Test_init(12) test['add'](test, 1)
Andrii
Вот и всё ООП
Igor
Словари в питоне с версии 3.5 или 3.6 упорядочены по порядку создания ключей.
ключи упорядоченны ;) но к сожалению такая упорядоченность мало что дает ... иногда все же хотелось бы ходить по порядку значений ;(
Ikrom
Потом все
Igor
Чтобы упорядочить сделай sort
и каждый раз при вставке делать сорт? ;)
Ikrom
Нет сделай с циклом
Igor
Ты говоришь хуйню ... лучше промолчи за умного сойдешь ... речь об упорядоченных коллекциях. К сожалению та упорядоченность которая есть в пайтоне это немного другое
Ikrom
Чем худшим среди тупых
Mikhail
Ауф!
Ikrom
Поэтому будьте королями которые не молчат