@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 #28 · 24.05
Я очень долго не покупал робот-пылесос, несмотря на свою любовь к технологиям. Не шибко верил в эти штуки, да и жил в небольшой квартире с пушистым ковром. Но теперь у нас квартира побольше и почти без порогов, а ещё кот, от которого везде остаётся шерсть. К тому же, рынок неплохо развился за эти годы, индустрия набила шишек, так что я взял Roborock S5 Max. Робот-пылесос, пожалуй, одна из самых по-настоящему умных бытовых технологий нашего времени. Посудомойка и стиральная машина все ещё требуют много дополнительной работы руками, автоматическая глажка вообще ещё в адекватном виде не появилась, 3D принтер тот вообще хочет много внимания... А робот-пылесос — недаром там в названии «робот» — запустил и забыл. S5 Max довольно дорогая модель с лидаром и хорошей программной частью. Он и правда весьма умён, свободно ориентируется в квартире, грамотно строит маршрут и понимает, где находится. В моем случае проблема возникла лишь один раз — пылесос втянул кошачью игрушку, которая застряла во вращающейся щётке. Это, кстати, приучает к порядку: если всякие рюкзаки и тапки ещё могут валяться у стен там и тут, то мелочам на полу делать совершенно нечего — ваши ступни вам потом за это спасибо скажут. В остальном Roborock прекрасно объезжает ножки стульев, перекатывается через провода и заползает на всю глубину под диван и кровать (а это недоступно даже при чистке ручным пылесосом!). При первом запуске робот объезжает всё пространство, куда способен пролезть, и строит карту квартиры, на которой позже можно разметить комнаты, невидимые стены и другие зоны, а затем, по желанию, убирать точечно. Ещё прикольная фишка — детектор ковра: машина понимает, что движется по ворсу, и сама увеличивает мощность всасывания, а затем обратно уменьшает, когда попадает на обычный пол. Но насчёт самой уборки совсем чудес ожидать не стоит. Сильный ручной пылесос тянет лучше, а робот не избавлен от всех проблем своих предков: волосы наматываются на щётку, пылесборник нужно вытряхивать и мыть. Кстати, для волос прямо под крышкой небольшой нож-лезвие, очень практично: взял и обрезал. Я бы сказал так: человек уберёт лучше, но робота вы будете запускать существенно чаще, чем стали бы пылесосить сами. Особенно если квартира большая. 30-метровую студию я в своё время обходил с вертикальным пылесосом за 20 минут. Но квартиру втрое больше — нет уж, пусть машина старается. Из серьезных для меня недостатков я бы выделил три: • Моющий режим конкретно в моей модели — полная ерунда. Он едва протирает поверхность, так что я бы скорее назвал его увлажняющим режимом. Так что не особо нужен в корпусе и контейнер для воды, и пристегивающаяся на липучках тряпка-расходник. • Робот не умеет понимать, что пылесборник заполнен, и как-то предупреждать об этом. А пыли и грязи он находит много, даже если запускать каждый день. Вот бы сам в туалет ездил выбрасывать... • Машина умеет понимать, где ковёр. Но разработчики не догадались сделать функцию «почистить в этой комнате только ковёр». А было бы очень кстати. В остальном однозначно мастхэв, одно из самых полезных вложений денег за последние много лет. #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