@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 #1167 · 26.11
Вернор Виндж, «Пламя над бездной». Я уже писал вам о другой книге Винджа, и моё первоначальное впечатление об авторе усилилось. Это высококлассная фантастика, очень умная, качественная, не уступающая по интеллектуальной ценности лучшим произведениям мировой литераторы, но читать её тяжеловато. Она прям требовательна к вниманию читателя или слушателя. Не сказать, чтоб лексика была сложная, просто каким-то неуловимым образом нагружает мозг, поэтому слушал я с паузами и перерывами. Бессмысленно рассказывать про сюжет, потому что он довольно вторичен относительно вселенной, построенной автором. Нет, сюжет не примитивный, он хороший и интересный, но меркнет на фоне совершенно феноменальных деталей устройства местного мира. Я вообще нигде такого не встречал, хотя читал и смотрел очень много. У Винджа, ни много ни мало, вся галактика состоит из областей с разными законами физики, причём, шито это не белыми нитками, а вполне гармонично. Идея любопытная не только сама по себе, но и позволяет автору вводить изолированные сюжетные контексты. Например, в нашей с вами области, «Медленной зоне», нельзя двигаться быстрее света, и невозможна работа сильного ИИ. Но вокруг неё есть «Край», где и гиперпрыжки и искусственный разум заводятся. Жители «Края» технологически более развиты, но по понятным причинам ни в коммуникацию с «Медленной зоной» вступить толком не могут, ни контакт совершить. Поэтому «Глубина в небе» — другой роман Винджа, о котором я вам рассказывал до этого — происходит в той же вселенной, но так, будто бы сверхсветового движения не существует. Кстати, корабли тут совершают микропрыжки по несколько десятков в секунду. Прикольная идея, которая ещё и накладывает некоторые ограничения на сражения в космосе: любой выпущенный тобой снаряд или даже лазерный луч попадёт туда, где враг находился несколько миллисекунд назад. Как именно автор преодолел это ограничение, я вам спойлерить не буду. Ну и самое крутое: раса существ, в которой одна особь представляет собой стаю собак из 3-6 организмов. Каждая отдельная собака не обладает высшими когнитивными функциями, но в синхронизации они превращаются в единое разумное существо, управляющее частями стаи так, как мы управляем руками и ногами. Это очень интересно описано, автор придумал целый отдельный быт с особенностями и ограничениями, связанными с таким необычным видом организмов. Авторский гений тут в том, что для введения принципиально иной формы жизни не потребовалось выдумывать условные летающие сгустки плазмы (или живой океан, да простит меня пан Станислав), а взят фундамент на основе понятного нам с вами (читателям, людям) образа. Наверное, если бы я советовал фантастику кому-то, кто невежественно считает её примитивным (детским, несерьёзным и т.д.) жанром, я бы предложил как раз Винджа. Ну может ещё Питера Уоттса. Знаю, что в серии у Винджа есть ещё книга, но в аудио её нет. Буду в старости у камина читать текстовые версии :) #fiction
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