@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 #633 · 7.11
Буквально несколько дней назад вышла игра The Entropy Centre — очень похожая на Portal трёхмерная головоломка, которую автор сделал практически в одиночку. По сюжету человечество открыло "энтропийную энергию", с помощью которой можно перематывать назад во времени отдельные объекты. На Луне была построена специальная база — The Entropy Centre — с огромным энтропийным орудием, направленным на Землю. Если с Землёй случается какая-то катастрофа (ядерная война, пандемия, попадание метеорита итд), то планету отматывают назад на 5 лет, а людям высылают информацию, позволяющую избежать беды. Вы просыпаетесь в этом Центре, почему-то находящемся в состоянии запустения. Других людей нет. Вам дают ручную энтропийную пушку и отправляют решать задачки (разработчик не скрывает буквально прямые заимствования из Portal). Весь игровой процесс как раз строится на перемотке предметов во времени: перенесли кубик с первой кнопки на вторую, прошли куда-то, а потом запустили в него луч из пушки, и он сам по воздуху двигается в обратном направлении на первую кнопку. Очень интересная задумка, отличное качество исполнения, забавные сюжетные детали (например, работники Центра в письмах обсуждают возможность перемотать себя до того, как посмотрел любимый сериал, чтобы забыть его и посмотреть ещё раз). Учитывая, что делал это один человек, снимаю шляпу. Но из-за этого у автора не хватило сил и времени глубоко поработать над левел-дизайном. Задачки сравнительно простые и даже близко не раскрывают потенциал такой многомерной идеи. На уровнях, которые названы сложными, ты тратишь больше времени на анализ сцены и понимание того, какой переключатель какую дверь открывает, а не на изобретение какого-то магического мозговыносящего решения, как хотелось бы. Игровые элементы тоже примитивные: пять видов кубов с разными функциями, да два типа кнопок. Есть конвейеры и вентиляторы, но их обращение во времени смотрится совсем не эффектно, потому что движение ленты или лопастей в обратную сторону не ощущается необычным или противоестественным (в отличие, например, от внезапно взлетающих в воздух кубов, чьё падение ты перематываешь). И всё равно проект интересный, особенно на современном безрыбье. Инди с крутыми механиками обычно выглядят дёшево и нарисованы набившим оскомину плоским пиксель-артом, а дорогущие блокбастеры за миллионы баксов все на одно лицо и надоедают через 5 минут. В The Entropy Centre красивая графика, проработанные детали, есть претензия на сюжет (хотя концовку я не понял), при этом эксплуатируется любопытная небанальная механика с глубоким потенциалом. Надеюсь, автор заработает кучу денег и выпустит вторую часть помощнее. #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