А вам не кажется лишним то, что в описании методов класса всегда надо передавать текущий экземпляр?
Его сообщения
Точно удалить?
-
-
шарм
эпотаж
пиздабол
ультиматум
апокалипсис
распиздец
рубиновый
хандра
бугагашеньки
йота
-
Подборка классных волпеперов под Halloween www.smashingmagazine.com/2008/10/27/halloween-desk…
-
Зачем вы сюда ссылки на себя выкладываете? В профиле ведь есть ваш твиттер-акк
-
Между прочим, вчера в Донецке прошла первая встреча твиттерян этого города. Тег мероприятия: #twidn
-
Babybird - Back Together
-
Не могу найти аналогов Porcupine Tree и\или Pink Floyd. Прям горе какое-то.
-
-
Porcupine Tree - Time Flies
deiz -
@insteankt Верно. Класс, да? :) У меня мурашки по коже были в первый раз. Именно как буд-то всю скоротечность жизни показали как оно есть
Setti -
начальный проигрыш на что-то из Pink Floyd похож очень, надо вспомнить
FunkyBob -
@Setti да, интересные. есть пара альбомов
deiz -
@FunkyBob так ведь жанр с Pink Floyd один и тот же у них
Setti
-
-
Супертипичный для новичка вопрос: вот у меня список из 300 файлов, которые по по очереди качаются curl'oм. Это все делается в цикле, разумеется, но проблема в том, что скрипт, не успевая до конца сохранить один файл, переходит к закачке и сохранению следующего. В результате файлы оказываются битыми. Знаю, что curlmulti здесь в помощь, но хочу сначала разобраться с однопоточной загрузкой по почереди большого количества файлов. Помогите, пожалуйста.
-
Сколько по-вашему актуальных библиотек портировано на Python 3? Навскидку в процентном соотношении по сравнению с Python 2
-
В свете IDE есть что-то новое, интересное из бесплатного? Уже две недели переключаюсь между Eclipse и Netbean - не могу привыкнуть ни к той, ни к другой. Какие-то они ебанутые.
-
Никогда не любил IDE — слишком много ресурсов для того, что они дают. А UI перегружен настолько, что просто глаза вырывай. Предпочитаю писать в текстовом редакторе (gedit довольно мощен под Linux) и консоли.
ai -
ах да, сайт - www.geany.org/
ascrazy
-
-
Хочу еще 100500 сезонов The Sopranos и Boston Legal
-
Имею ценный трёхлетний опыт координации небольшой группы энтузиастов из в разное время от 20 до 150 человек. Никаких денег, договоров, обязательств - исключительно социальные механизмы взаимодействия. Для них же создал, развил и управляю тематическим интернет сообществом. Пол года назад зарегистрировал общественную организацию. Задавайте вопросы.
-
организовать всё таким образом, что когда закончил работу по организации, всё идет как надо без моего вмешательства :)
-
Как быстро заблокировать/разблокировать группу сайтов на компьютере?
Нужно, чтобы пока я работаю, некоторые сайты были заблокированы.
-
Хочу завидовать себе
-
Хорошо сказано. Действительно, очень хочется завидовать себе)))
nadezhda
-
-
Подскажите простую библиотеку для асинхронных неблокирующих HTTP запросов.
-
begemotina -
ггг.. ниче так простая)
для неблокирующих HTTP запросов можна юзать Tornado + multi curl
Creotiv -
@Creotiv напомните, пожалуйста ссылочку на неблокирующий multi curl. Или PycURL - это оно и есть?
Setti -
@Setti curl - это сишная либа. pycurl - это обертка для этой либы
тоесть вам нужно поставить сначала libcurl, а потом pycurl для python
multi curl - это просто функционал curl'a
Creotiv -
@Creotiv ага, уже вижу http://pycurl.sourceforge.net/doc/curlmultiobject.…
Setti
-
-
Зеленые и синие ники. В чем разница?
-
зеленый - человек на сайте, синий - оффлайн
narcomaniac -
@Futurist Тю. Я думал, мы какие-то особенные.
Setti -
@Setti Тю. Я думал, мы, ЖЕЛТЕНЬКИЕ, какие-то особенные. =)
Grixa
-
-
industrial metal, progressive metal, progressive rock, punk rock electronic, female vocalists
-
Твоя музыкальная совместимость с Setti Высокая Вас объединяет любовь к Keane, Blue Foundation, Röyksopp, Moby и Green Day.
Unbreakable -
@Unbreakable добавь меня в друзья
Setti -
Your musical compatibility with Setti is Low Music you have in common includes Led Zeppelin, Porcupine Tree, Pink Floyd, Green Day and The Doors.
chervie -
Твоя музыкальная совместимость с Setti Очень высокая :)
Kvacdopil
-
-
Уебанская истерия вокруг айфона положила любимый твиттер.
нет
Jungle@Jungle почему?
Setti@Setti Некорректно поставлен вопрос. В описании методов класса не надо передавать текущий экземпляр, как и в описании статических методов, а в описании методов экземпляра класса как раз надо. Учите теорию.
BekoBou@BekoBou когда мы описываем класс, в его методы нужно всегда передавать параметром текущий класс (self). Зачем это сделано? В PHP этого нет, и это прекрасно
Settiточнее, да, не обязательно, но если описать метод класса без аргумента, а потом без аргументов к нему обратиться, то получится ошибка, т.к. всегда методу передается его родитель как аргумент
Setti@Setti Потому что это логично. Если ф функцию передается параметр, то человек должен знать что он туда передается. Следовательно он должен быть описан в хедере метода.
Питон это не ПХП, за что ему и спасибо)
Creotiv@Creotiv вот потому, что это логично, это и не нужно делать явно. Метод класса имеет доступ ко всем методам и свойствам этого класса. Зачем это явно указывать каждый раз?
SettiЗачем делать
def(self):
self.var
Если это то же самое, что
def():
self.var
Но мы не можем делать как во втором варианте, потому что будет ошибка.
Setti@Setti читайте дзен питона. "Явное лучше, чем неявное"
Jungle@Jungle Полность согласен
Creotiv@Setti Потому что вы будете вызывать переменную, которая не передана явно в функцию.
Или к примеру, я через Метаклас захочу подменить параметр self и передать что то другое? - Тогда это уже явно будет не обращение на сам обьект, а следовательно называть его self тупо.
это все равно что вызывать синглтон через создание класа, когда нужно вызывать через getInstance() показывая тем самым что это таки синглтон, а не обычный обьект.
Вообщем читайте PEP и теорию.
Creotiv@Jungle с такой логикой надо бы еще и при обращении к членам родительского класса явно указывать, что это именно они. Например
self.parent.var
Нахрен не нужно, но зато отвечает дзену "Явное лучше, чем неявное". Такая логика получается.
Setti@Creotiv Нет, я буду обращаться к переменной, которая должна быть в той области видимости, в которой я работаю. Если я говорю
self.var, то я обращаюсь к члену текущего класса, и его не нужно передавать в функцию параметром. На то он и член класса, чтобы быть доступным внутри этого класса.
Да, это расходится с теорией, но потому я и завёл эту полемику, потому что не понимаю, зачем создатели Python так сделали.
Зачем передавать в методы класса весь класс вместо того, чтобы просто сделать видимыми члены классов для методов класса, и не заниматься лишним def(self) ?
Setti@Creotiv мне понравился трюк с подменой первого аргумента метода чем-то другим. Пока что для меня это единственный сильный аргумент в защиту подхода
Setti@Setti программист должен четко понимать что происходит в коде, для этого все действия должны быть явными. Это как хедер функции в Си, если там написано что такие параметры на вход, значит именно такие, и человек не думает, а может кто-то гдето заврапил функцию и передает еще че-то где-то как-то.
Все это делает код легко читаемым и просто поддерживаемым. Любой же неявный функционал сбивает с толку и усложняет работу с кодом в разы.
В Питоне сделано все правельно, а вот в ПХП нет.
Вот я хоть и не Си проггер но зато когда открываю код того же Линукса могу четко сказать что и где да и как происходит, потому что код явный, а вот если бы такие темы там были, то без понимания области и прочего я этого бы сказать не мог.
Лучше писать понятно, чем коротко. Перл тому в пример.
Creotiv@Setti вы не понимаете логики работы питона, это не пхп и к родительскому классу так не обращаются. Почитайте побольше о питоне может тогда у вас пройдёт переломный момент и всё встанет на свои места :)
Jungle@Creotiv про метаклассы думаю еще рано говорить :)
Jungle@Jungle Про метаклассы всегда в тему говорить, это ж млин метоклассы))))
Creotiv@Creotiv не надо, а то запутаете ещё больше человека :)
JungleМне всё еще не понятно, почему вместо области видимости (прозрачно и без лишней писанины и без лишних параметров методов) используется передача по параметру метода. А значете что самое печальное? В метод всегда передается экземпляр класса, даже когда он там нахрен не нужен. Если мне нужна приватная функция для расчёта, нахрена в нее передавать экземпляр класса? Но Python это обязательно сделает. И мне обязательно нужно это учесть.
Setti@Setti Python сделает это по дефолту, но не всегда, через метакласс можно это изменить(вроде бы, никогда таким не страдал)
Creotiv@Jungle Это важная тема в питоне, ее надо знать.. по крайне мере зачем оно есть.
Creotiv@Setti в питоне нет приватных атрибутов! не всегда если это метод класса, то первым параметром предается класс! Почитайте на досуге www.cafepy.com/article/python_attributes_and_metho…
Jungleтакая "явная" передача в некоторых случаях помогает избежать ошибок(особенно это касается классов-наследников)
qiwi360