@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 #43 · 8.06
Умение признавать свои ошибки — современная вежливость больших корпораций. Бывают непопулярные у народа решения, которые продиктованы бизнесом (например, Фейсбук забит визуальным мусором и не собирается это менять). Бывают решения, которые изначально приняты сознательно, потому что думали, что так будет лучше, но когда стало понятно, что решение плохое, компания не захотела показаться глупой и выдала проблемы за особую идеологию (отсутствие возможности редактировать твиты в Twitter; отсутствие возможности адекватно прикреплять картинку к посту в Telegram). Бывают решения от лени, когда какой-то момент вообще не продумывали (неправильный визуальный акцент на номера телефонов вместо имён в групповых чатах WhatsApp; отсутствие возможности отправить альбом отложенным сообщением в Telegram). Бывают решения от незнания, когда люди некомпетентны или не очень понимают, что делают (бардак на вкладке «сервисы» ВКонтакте). А бывают решения, про которые стало понятно, что они плохие, и компания их откатывает. Это большая редкость. Подумать только: компания признаёт ошибку и делает обратно как удобнее. Вы, наверное, помните ситуацию с Кинопоиском: всем включили новый интерфейс, люди стали жаловаться, и компания вернула старый интерфейс, а в новый начала перерабатывать его постепенно. Но тут глобальное изменение вызвало глобальное недовольство, был реальный риск снижения пользовательской базы. А вот вчера на WWDC показали, что Apple возвращает в iOS 15 карусель выбора времени для будильника. Изменение интерфейса этой карусели — одно из худших дизайнерских решений Apple за всё время. Выбирать время стало значительно неудобнее. В то же время это мелочь, из-за которой никто не перестал бы пользоваться айфоном. Особенно когда речь идёт об оголтелых Apple-фанатах: им можно продать даже куда более абсурдные и корявые вещи, всё стерпят. Однако же компания решила вернуть предыдущий вид карусели, очевидно более дружественный и понятный. Кажется, такие случаи в наше время — большая редкость. #gadgets
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