@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 #839 · 17.06
Очень интересная ситуация развивается вокруг сайта Reddit. Reddit — один из первых сайтов в интернете, который целиком зависит от пользовательского контента. С него позже содрали Пикабу, но идея такая же: авторы просто дали площадку и систему голосования, а весь интерес для людей создают другие люди. Конкретно Reddit, надо заметить, ещё и довольно примитивен технически: и визуальные стили, и layout, и способы взаимодействия с контентом в основном так и остались на уровне 2005 года, когда он был создан. Более того — Reddit даже старается не хранить сам объёмные данные вроде картинок, а использует ссылки на сервисы вроде Imgur. Тем не менее, Reddit входит в топ-20 сайтов по посещаемости во всём мире, а его авторы зарабатывают десятки и сотни миллионов долларов в год. Сайт настолько популярен и известен в США, что туда не раз приходили даже многие знаменитости и в неформальном виде отвечали на вопросы обычных людей. Поскольку сам по себе Reddit, мягко говоря, требует некоторого привыкания к его UI/UX, люди зачастую пользуются сторонними клиентами. И до сих пор сайт бесплатно предоставлял API для этого. Но с недавнего времени решил брать деньги, причём, внушительные: так, например, автор Apollo — одного из самых популярных мобильных приложений для Reddit — посчитал, что ему для сохранения работоспособности придётся платить компании $20млн в год. Из-за этого владельцы сообществ решили устроить забастовку и стали массово закрывать свои сообщества. Если сообщество закрыто, в него нельзя писать, тогда нет нового контента, нет интереса для юзеров, и они в теории могут с Reddit уйти. На что главы Reddit сначала призвали всех своих сотрудников игнорировать забастовки, а потом и вовсе разослали модераторам такое предложение: кто из модераторов будет сотрудничать, тому мы передадим сообщество, отобрав его у владельца. Ну вот представьте: вы создаёте паблик ВК, набираете там миллион подписчиков, регулярно публикуете контент, а потом в какой-то момент вы ссоритесь с ВК, и у вас паблик просто отбирают и передают его кому-то из активных юзеров, кто готов взять на себя управление. Думаю, вы уже понимаете, о чём нам очередной раз напоминает эта история. Абсолютно любая монополия или другая корпорация, владеющая ресурсами, от которых вы зависите, может в любой момент на любых условиях эти ресурсы отобрать. Производитель телефонов выгонит ваш бизнес из магазина приложений из-за санкций, игровая приставка забанит вас по признаку гражданства, видеохостинг удалит все ваши видеоролики за политические взгляды и так далее. Даже ваша самая любимая компания, делающая чудесные продукты и сервисы, от которых вы в восторге. Даже если вы копите мерч этой компании, существуете в её экосистеме, являетесь преданным клиентом, пользователем или подписчиком десятки лет. Даже если владельцы этой компании кажутся святыми, а заявляемые публично ценности вам невероятно близки. Всё равно в какой-то момент левая пятка владельца не сойдётся с ретроградным Меркурием, и вы окажетесь у пустого корыта, если только это корыто кода-то было наполнено этой самой компанией. #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