@djangoproject · Post #155 · 04.09.2016 г., 12:23
https://anthony-zhang.me/blog/python-bound-methods/ when & why we use @#staticmethod
Hashtags
TGINSIGHT SIMILAR POSTS
Изходен канал @clockstackwheels · Post #621 · 31.10
У меня в друзьях есть классный автор — Владимир Бычко. Владимир — проект-менеджер, ведёт реально интересный standalone-блог об управлении проектами и не только. Например, последний пост с правилами жизни — не какая-то унылая несовместимая с реальностью псевдофилософия "а ля Дуров", а действительно полезные и правильные наблюдения. Владимир один из самых интересных авторов среди моих ВК-подписок, однако, читаю я его посты крайне редко, и здесь проявляются серьёзные недостатки standalone, о чём я сейчас расскажу. Вообще, сервис-ориентированный интернет если не умирает, то, как минимум, теряет своих сторонников. Многие айтишники, интеллектуалы, авторы текстов уже высказываются о необходимости слезать с иглы корпораций, эти самые корпорации дешевеют, люди в сети активно выстраивают модели децентрализованного "веб три ноль". Дополнением к этому идёт акцент на медиа против текстов: сервисы уже не особо скрывают, что текстовая часть для них второстепенна, а внимание брошено туда, где хайп и толпы — например, в вертикальные видео и короткоживущий контент. В России этот эффект особенно заметен, именно поэтому вместо какой-нибудь устойчивой текстовой площадки большинство взрослых вменяемых авторов пишут в Telegram. Который для этого подходит чуть лучше, чем плоскогубцы для отвинчивания гаек — можно, конечно, и все мы так делали за неимением альтернатив. На этой волне неоднократно слышал призывы "уходи в standalone". Сделай свой сайт с RSS-фидом, любым оформлением, пиши туда. Как автор блога, я и правда мог бы такое сделать и даже видеть немало плюсов. Но, как читатель, я до сих пор не подписан ни на один standalone-блог, даже если мне очень нравится контент. Проанализировал основные четыре проблемы стэндэлонов. 1. Люди всё равно приходят из соцсетей, но ссылки в соцсетях оформлены некрасиво, понижаются в охватах и требуют дополнительное действие со стороны человека. Последнее особенно важно: конверсия в прочтение критически низкая даже для встроенных редакторов лонгридов и даже при условии, что пользователю сообщение со ссылкой покажется (например Telegram > Telegraph). 2. RSS это не замена ленте сообщений. Нет удобного централизованного способа читать RSS в формате той площадки, которая тебе близка. Сам Владимир, например, ссылается на RSS-бота для Телеграма, который требует для своей работы быть подписанным на какой-то канал. Ну ладно, есть нормальные RSS-боты везде, но это всё опять же выглядит как лента с внешними ссылками, а не как лента сообщений в формате площадки. 3. У каждого стэндэлона свой дизайн. Если я впервые на странице нового для себя автора ВК или в Telegram, я тут всё знаю. Мне привычно и удобно. Я знаком с навигацией, я привык к шрифтам, я знаю, где лайки и комментарии. К каждому новому стэндэлону нужно привыкать и тратить когнитивные ресурсы на обучение. 4. Обсуждений нет, если нет комьюнити. Да, какой-нибудь Вастрик смог создать вокруг своего стэндэлон-блога комьюнити, за которое люди даже платят. Но это единичные примеры. Обсуждения в ЖЖ работали, потому что был социальный граф: люди знали топовых авторов и более менее знали друг друга. Обсуждения в соцсетях работают по той же причине, пока в них есть аудитория: часть людей связана социальным графом, другая часть может в этот граф заходить со стороны и чувствовать себя комфортно, кроме случаев токсичной атмосферы. Но если мы проанализируем, как ведут себя обсуждения там, где социального графа нет (например, на YouTube), то увидим просто всплески очень ограниченных локальных диалогов под каким-то особо популярным комментарием и всё. Комьюнити там нет за редкими исключениями. Интернету пока ещё точно рано standalone. Только авторы, уже собравшие огромную аудиторию через соцсети, могут себе такое позволить. И то, с оговорками. #web
Hashtags
Търсене: #staticmethod
@djangoproject · Post #155 · 04.09.2016 г., 12:23
https://anthony-zhang.me/blog/python-bound-methods/ when & why we use @#staticmethod
Hashtags
@djangoproject · Post #593 · 13.04.2018 г., 19:48
@#classmethod vs @#staticmethod vs "plain" methods What's the difference? class MyClass: def method(self): """ Instance methods need a class instance and can access the instance through self. """ return 'instance method called', self @classmethod def classmethod(cls): """ Class methods don't need a class instance. They can't access the instance (self) but they have access to the class itself via cls. """ return 'class method called', cls @staticmethod def staticmethod(): """ Static methods don't have access to cls or self. They work like regular functions but belong to the class's namespace. """ return 'static method called' # All methods types can be # called on a class instance: »> obj = MyClass() »> obj.method() ('instance method called', <MyClass instance at 0x1019381b8>) »> obj.classmethod() ('class method called', <class MyClass at 0x101a2f4c8>) »> obj.staticmethod() 'static method called' # Calling instance methods fails # if we only have the class object: »> MyClass.classmethod() ('class method called', <class MyClass at 0x101a2f4c8>) »> MyClass.staticmethod() 'static method called' »> MyClass.method() TypeError: "unbound method method() must be called with MyClass " "instance as first argument (got nothing instead)"
Hashtags
@djangoproject · Post #385 · 15.07.2017 г., 16:17
# @classmethod vs @staticmethod vs "plain" methods # What's the difference? class MyClass: def method(self): """ Instance methods need a class instance and can access the instance through self. """ return 'instance method called', self @classmethod def classmethod(cls): """ Class methods don't need a class instance. They can't access the instance (self) but they have access to the class itself via cls. """ return 'class method called', cls @staticmethod def staticmethod(): """ Static methods don't have access to cls or self. They work like regular functions but belong to the class's namespace. """ return 'static method called' # All methods types can be # called on a class instance: »> obj = MyClass() »> obj.method() ('instance method called', <MyClass instance at 0x1019381b8>) »> obj.classmethod() ('class method called', <class MyClass at 0x101a2f4c8>) »> obj.staticmethod() 'static method called' # Calling instance methods fails # if we only have the class object: »> MyClass.classmethod() ('class method called', <class MyClass at 0x101a2f4c8>) »> MyClass.staticmethod() 'static method called' »> MyClass.method() TypeError: "unbound method method() must be called with MyClass " "instance as first argument (got nothing instead)" #classmethod#staticmethod
Hashtags
@djangoproject · Post #126 · 31.08.2016 г., 02:13
goo.gl/QkvD2L #staticmethod #Classmethod
Hashtags
@djangoproject · Post #87 · 11.07.2016 г., 11:53
https://docs.python.org/3/library/functions.html#staticmethod #staticmethod(function) Return a #static method for function. A static method does not receive an implicit first argument. To declare a static method, use this idiom: class C: @staticmethod def f(arg1, arg2, ...): ... The @staticmethod form is a function decorator – see the description of function definitions in Function definitions for details. It can be called either on the class (such as C.f()) or on an instance (such as C().f()). The instance is ignored except for its class. Static methods in Python are similar to those found in Java or C++. Also see classmethod() for a variant that is useful for creating alternate class constructors. For more information on static methods, consult the documentation on the standard type hierarchy in The standard type hierarchy. class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a str version of object. See str() for details. str is the built-in string class. For general information about strings, see Text Sequence Type — str.
Hashtags