@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 #216 · 11.02
В Твиттере айтишники иногда поднимают тему выгорания, но она для меня не до конца понятна. Много лет назад я взялся за написание очень масштабного проекта. У меня было куда меньше опыта программирования, чем сейчас. Используемые мной инструменты были несовершенны, а применял я их не всегда правильно. Стоит ли говорить, что проект, цикл разработки которого планировался года на полтора, занял все пять, и вышел в таком плохом техническом состоянии, что даже после двух переделок был закрыт. Это была онлайн-игра для ВК, кто очень давно меня читает, те могут даже что-то помнить. Это, пожалуй, самая сокрушительная история моего поражения, после которой были полгода единственной во всей моей жизни настоящей депрессии. Под конец разработки я испытывал сильнейшее эмоциональное истощение. Я просто видеть не мог этот проект. Я просыпался каждый день с мыслью о том, что мне снова нужно открывать IDE и вносить правки, добавлять фичи, и что конца этому нет, потому что сделать нужно столько, сколько я за сегодня в принципе смогу, пока не упаду замертво. Особенно после релиза, когда проявились проблемы, и когда стало ясно, что игра не «выстрелила», и я не стану миллионером, но принять решение бросить её это значило отказаться от надежд, которые питали меня последние 5 лет. В общем, по всем признакам похоже на выгорание. Разработчик вкладывает в работу так много сил и эмоций, что у него садится батарейка. И всё-таки. Я ведь сам виноват: истощал себя, потому что взял задачу не по силам, да ещё и создал вокруг неё завышенные ожидания. Мою энергию тратило моё же собственное упорство и нежелание признавать фиаско. Однако принято воспринимать и описывать выгорание, как внешний фактор. Стихию, которая тебе не особо подконтрольна. Разве что условно: ты мог добровольно выбрать не ехать в то место, где потом начался ураган. И вот тут я не особо согласен. Мне кажется, человек понимает, что именно он продолжает делать, чтобы выгорать. А ещё для выгорания нужно иметь возможность похандрить, вы уж простите. Так и представляю себе, как выгорает рабочий, который вагоны разгружает. Или кассирша в Пятёрочке. Что-то тяжело мне стало товары пробивать, уйду в саббатикал! Ну ладно, они, допустим, эмоции в работу не вкладывают (а программисты действительно вкладывают, об этом я как-нибудь ещё напишу). Но где у нас выгорание врачей, учителей? Пашут как проклятые же. Это мы, айтишники — неженки, чуть что, сразу психолога мне. Так что и к историям о выгорании я отношусь соответственно, хотя сам подобное проходил. Выгорел — значит, была возможность. Было окно в жизни, которое можно заполнить страданиями. Было достаточно денег, чтобы с работы уйти. Это не отменяет того факта, что субъективно человеку действительно очень плохо и тяжело. Но если я себе ногу отпилю — мне тоже будет очень плохо и тяжело. #dev#life
Търсене: #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