@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 #610 · 27.10
Есть такая технология защиты от пиратства видеоигр — Denuvo. Не раскрывается, как именно она работает, но известно, что она очень агрессивная. Во-первых, сама по себе тяжёлая (к исполняемому файлу весом в сотню мегабайт может добавиться ещё 500). Во-вторых, она насилует компьютер постоянным шифрованием в реальном времени, из-за чего игра работает медленнее, чем работала бы без Denuvo. В-третьих, она ещё и насилует накопитель данных постоянными перезаписями. Есть несколько случаев, когда Denuvo сокращала срок службы SSD-накопителя, с которого запускали игру. Ну то есть, да, покупать лицензионную продукцию может быть плохо не только для вашего кошелька, но и для вашего оборудования. В первый раз Denuvo ломали месяц, взломали. Сейчас уже недели и дни. Чем популярнее игра, тем быстрее обычно она появляется на торрентах. Вот новая Gotham Knights, о которой я писал ранее, выложена на рутрекер этой ночью — спустя всего 5 дней после релиза. Казалось бы — зачем производителям игр так делать? Зачем ставить дорогую, тяжёлую, ухудшающую работу игры защиту, если её всё равно взломают за неделю? Дьявол тут в особенностях человеческой психики. Вся эта возня с защитой — как раз ради этих первых пяти дней. Разработчики даже сами выпускают патчи, которые через время защиту убирают. С одной стороны, многим людям важно поиграть в игру сразу после релиза, а не через неделю. С другой стороны, компаниям тоже выгодно продать игру людям в первые дни, пока на неё не вышла куча обзоров, видеопрохождений на ютубе и разной критики. То есть, смотрите, как выходит: • Человек готов заплатить за игру, и у него есть на это деньги, но только если не достанет её где-то ещё. Для меня это странно: либо мне продукт нравится, и я в любом случае его покупаю, либо не так нравится, и я в любом случае подожду условную неделю, чтобы скачать. Тут стоит сделать поправку на физическую возможность купить. Если компания сама отказывается брать мои деньги (например, блокировкой по гражданству), то никаких обязательств перед ней у меня на мой взгляд не сохраняется. • Человек готов купить игру, не имея о ней достаточно информации, даже точно зная, что через неделю может появиться информация, которая его от покупки отвадит. Для меня это понятно: люди покупают впечатления, но часть этих впечатлений может появиться после просмотра видео или прочтения статьи, а за оставшуюся часть впечатлений полную цену платить уже не готов. Но, возможно, я бы в такой ситуации скачал, понял, что мне понравилось, и купил бы. То есть наличие игры на торрентах в данном случае не превращает покупку в непокупку, а вот наоборот могло бы. #games
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