@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 #583 · 3.10
Пару недель назад в один день презентовали сразу две новые модели экшен-камер от разных производителей: DJI Action 3 и GoPro Hero 11. Технически даже три, потому что у GoPro есть версия Mini, о ней чуть ниже. Вообще говоря, DJI умеют исправлять косяки конкурентов в UI/UX, и в целом владеют этим направлением очень хорошо, на уровне Apple времён первых айфонов. Например, GoPro с первых версий сделали крепление винтом через два ушка, и оно уже приобрело огромную популярность, поэтому все остальные делают такое же. Да и сами GoPro стали заложниками собственного стандарта. Но это крепление плохое и неудобное: с одной стороны оно требует очень много времени на ввинчивание барашка, а с другой стороны подвержено перекосам при резких рывках, если ты затянул не до самой дури. При этом есть полностью отсоединяемый элемент — собственно винт-барашек, который может легко теряться. У DJI проблема решена элегантно и очень мудро: магнит в сочетании с защёлками. Секунда на присоединение, две секунды на отсоединение. Можно прикреплять в сложных условиях, в перчатках, одной рукой итд. Прямо тема для главы учебника по промышленному дизайну или по ТРИЗ. Но во всех аксессуарах давно главенствует неудобное крепление GoPro, поэтому ребятам из DJI пришлось сделать переходник. При этом технически камера от DJI на уровне предыдущего поколения GoPro. И по картинке и по другим параметрам. И, к сожалению, они не удержались от того, чтобы своровать некрасивый асимметричный дизайн. До чего аккуратной и визуально приятной была DJI Action 2 на фоне камер от GoPro, а тут прямо передрали уродство. Это похоже на случай, когда производители Android-смартфонов одно время стали повторять уродскую чёлку от Apple просто ради моды, но, благо, быстро опомнились. Но зато DJI Action 3 сильно дешевле чем даже прошлое поколение от GoPro, вообще, с ценой не стали жадничать. Думаю, GoPro долгое время ощущали себя монополистами, поэтому завышали. Отдельный интерес вызывает версия GoPro 11 Mini. Как большая, но без экранов. Экран на экшен-камере — вещь второстепенная и далеко не всегда нужная. Зато часто имеет значение вес и габариты. Для коптеров, кажется, отличный вариант именно что-то типа Mini. Да, у них есть версия GoPro 10 Bones (без аккумулятора и экрана, облегчённая), но стоит она почему-то неадекватно дорого, а в России дороже, чем точно такая же с экраном и аккумулятором. Короче, на мой взгляд, у DJI виден потенциал, но прямо сейчас пока не дожали. Ещё одно-два поколения, и они обойдут нынешних лидеров. Я надеюсь. #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