@python_beginnersЭта группа больше не существует

Страница 1573 из 1885
Zart
09.04.2017
11:41:57
потому что так мы явно обращаемся к конкретному классу, а не опираемся на поиск по иерархии

Nikolay
09.04.2017
11:50:19
А какие еще есть преимущества создания классметода вместо обычного метода? Код, который я разбираю, был написан одним из программистов команды гитхаба для личного проекта, я надеюсь найти здесь смысл. Тут в классе (допустим, это MyClass) в одном из обычных методов при соответствии условия вызывается классметод, описанный в этом же классе таким способом: if ***: MyClass.my_class_method()[Кстати, почему не self.__class__.my_class_method()?]. Дальше в классметоде производятся вычисления, они передаются в следующий классметод из этого класса как cls.my_second_class_method() и он возвращает какие-то значения, которые в итоге попадают в тот самый обычный метод. Эти классметоды не вызываются где-то извне и/или без создания самого объекта. В чем здесь смысл? Почему бы не использовать обычный метод, ведь все будет работать точно так же?

Zart
09.04.2017
11:51:34
я уже несколько раз повторил про разницу между MyClass.clsmethod и self.__class__.clsmethod

зачем он вынес в классметод - не знаю. может с точки зрения его дизайна это имело смысл

Google
Nikolay
09.04.2017
11:52:49
я уже несколько раз повторил про разницу между MyClass.clsmethod и self.__class__.clsmethod
Не, разницу я понял, но тут я зря спросил про это, надо у неё спрашивать, а не здесь.

Главный вопрос в других преимуществах классметода перед обычным методом. ;)

Zart
09.04.2017
11:53:16
в первую очередь рассматриваем это на предмет "можно ли применить в ситуации где нет экземпляра?" во вторую очередь - "какое поведение метода должно быть у сабклассов?"

если б не было классметодов, то пришлось бы их делать на обычных функциях

а статикметоды и есть обычные функции

когда мы объявляем метод как статик - то он внедряется в класс как обычная функция, которой не передается селф первым аргументом

это порой нужно для коллбаков или специальных случаев

некоторые люди порой так делают апи

Nikolay
09.04.2017
11:56:36
Сабклассов вообще нет, класс импортируется в другое место и там объект класса создается в __init'e__ другого класса, т.е. та переменная создает экземпляр класса, который делает вычисления у себя дома и возвращает этой переменной. Ситуаций для вызова этих классметодов других нет, т.к. они подходят только для операций с данными, которые получаются в том же классе.

Zart
09.04.2017
11:57:07
это сейчас нет, может он планировал их добавить

тут гадать как-то данных не хватает

Nikolay
09.04.2017
11:58:50
Да и вообще это она, а не он, кто там знает, что у нее в голове тогда было...

Zart
09.04.2017
11:59:13
male, female... sometimes camel (c)

Google
Alexander
09.04.2017
13:24:39


что оно на лямбду ругается

3 версия

melancholiac
09.04.2017
13:25:30
меня бы сердечный приступ схватил

этож как это без лямбд?

Zart
09.04.2017
13:33:05
a[-1][-1][-1]

кривой вопрос

ILIYA
09.04.2017
13:33:29
ок сори

Григорий
09.04.2017
13:34:06
что оно на лямбду ругается
пеп8 всегда на лямбды ругается

Zart
09.04.2017
13:34:29
>>> a=[1,2,[3,4,[5,6]]] >>> a[2][2][1], a[-1][-1][-1] (6, 6)

Григорий
09.04.2017
13:34:37
У него читаемость страдает от этого

Дмитрий
09.04.2017
13:46:43
https://pastebin.com/AKSwTQ1K

Кто-нибудь может подсказать почему не работает наложение картинок?

Igor
09.04.2017
14:12:28
Подскажите, как код оптимизировать, чтобы памяти меньше расходовалось? (программа для поиска анаграмм) https://pastebin.com/JHfTZJbj

Zart
09.04.2017
14:13:51
дай тестовый файл

код изначально писался в стиле с/паскаля, гм

Igor
09.04.2017
14:15:55
анаграммы это слова, которые аналогично читаются наоборот?

это решается в одну строчку

Zart
09.04.2017
14:16:05
не, то палиндромы

Igor
09.04.2017
14:16:10
а, сорри

Google
Zart
09.04.2017
14:16:15
анаграммы - состоящие из таких же букв

Igor
09.04.2017
14:16:26
точно, спасибо

Zart
09.04.2017
14:16:28
см. is_anagram, довольно красиво проверка сделана

всё остальное - не очень

задачка решается буквально в несколько строк кода, через итертулс

код в пасте еще и не пашет...

а, третий питон 8\

Igor
09.04.2017
14:21:04
11 окорок петлей Плетей рококо теплей Тишь ТОМНО тонко тонок тоном шить

вот тестовый)

должен выдать

окорок рококо петлей плетей томно тоном тонко тонок

Zart
09.04.2017
14:34:10
не совсем понятно какое хочется поведение от разного регистра

вот мой вариант: from __future__ import print_function from codecs import open from collections import Counter from itertools import groupby def anagram(key): return tuple(sorted(Counter(key.lower()).items())) with open('input.txt', 'r', 'utf-8') as fi, \ open('output.txt', 'w', 'utf-8') as fo: words = fi.read().splitlines()[1:] words.sort(key=anagram) for key, anagrams in groupby(words, anagram): anagrams = list(anagrams) if len(anagrams) > 1: print(' '.join(anagrams), file=fo) вывод: петлей Плетей теплей Тишь шить тонко тонок окорок рококо ТОМНО тоном

гм. тройка не дает сортировать каунтеры напрямую 8\

придётся через сортированные туплы похоже

исправленный вариант работает и в 2 и в 3

Artemka
09.04.2017
14:44:23
@rianovosti чё это за ссылки такие в телеграмме через собачку?

Zart
09.04.2017
14:44:49
ссылки на другие каналы/пользователей

Igor
09.04.2017
14:45:30
так, сейчас разберусь, спасибо большое)

нужно в нижнем регистре

Google
Artemka
09.04.2017
14:45:58
спасибо. прикол не понял просто, есть ссылки и полные и короткий вариант типо))

Zart
09.04.2017
14:48:10
если всё-всё нужно в нижнем регистре - и вывод тоже, то проще сразу на входе всё в lower() зафигачить

Григорий
09.04.2017
14:51:30
Вот джаву хоть читать можно, почему плюсы такая нечитабельная ссанина?

Zart
09.04.2017
14:55:58
жисть аще гуано

Григорий
09.04.2017
15:01:13
Ну писали бы сразу на брейнфаке или муу. Есть хоть одна причина писать на этом в 2017? ?

Zart
09.04.2017
15:02:32
оно всё еще лучше жабы

for some value of "лучше"

Григорий
09.04.2017
15:18:34
Что простите?
Таки нельзя?

Zart
09.04.2017
15:19:43
суммон трапов жабой..

Spacehug
09.04.2017
15:19:49
Это Джава-то читабельная нессанина?

Igor
09.04.2017
15:20:17
Это Джава-то читабельная нессанина?
да. известная же картинка сть

Маришка
09.04.2017
15:20:17
Таки нельзя?
С чего бы плюсы нечитаемы

Igor
09.04.2017
15:20:19


Zart
09.04.2017
15:20:52
и в качестве пруфа код на шарпе. ок.

Igor
09.04.2017
15:21:07
джава, шарп, какая разница

Spacehug
09.04.2017
15:21:19
и в качестве пруфа код на шарпе. ок.
Тоже немного пошатнулся

Zart
09.04.2017
15:21:31
надо было жс

Григорий
09.04.2017
15:21:42
Это Джава-то читабельная нессанина?
А почему двойное отрицание? Более-менее читабельная ссанина.

Igor
09.04.2017
15:21:50
кстати стоп, почему шарп?

Google
Zart
09.04.2017
15:22:00
System.out.println?

Igor
09.04.2017
15:22:09
https://www.google.nl/search?q="system.out.println"

https://docs.oracle.com/javase/tutorial/essential/io/formatting.html

¯\_(ツ)_/¯

Проксимов
09.04.2017
15:22:31
Zart
09.04.2017
15:22:45
Лол
работает жы

¯\_(ツ)_/¯
ну не пишу я на жабе

Григорий
09.04.2017
15:23:07
надо было жс
жс и не отрицают своих увлечений.

Проксимов
09.04.2017
15:23:24
Ну вот теперь это больше походе на питон

Igor
09.04.2017
15:23:26
ну не пишу я на жабе
я тоже, что, впрочем, не отменяет "жава, шарп, какая разница"

Zart
09.04.2017
15:24:17
наличие рефлексии и интроспекции в шарпе выгодно отличает его от жабоплюсов

Igor
09.04.2017
15:25:10
что там, что там нечитабельная ссанина

впрочем, с obj-c и брейнфаком не сравнится, да

Zart
09.04.2017
15:28:35
в жабе на каждый чих надо пару страниц код, сгенеренного через иде 8\

Григорий
09.04.2017
15:33:38
в жабе на каждый чих надо пару страниц код, сгенеренного через иде 8\
Ой у нас тут в метод ещё параметр передать надо, но иногда и не надо ?

Страница 1573 из 1885

Эта группа больше не существует Эта группа больше не существует