В python, что такое method_descriptor (на простом английском языке)?В python, что такое method_descriptor?
У меня была эта ошибка, и я не могу найти какую-либо информацию о нем ...
*** TypeError: can't pickle method_descriptor objects
В python, что такое method_descriptor (на простом английском языке)?В python, что такое method_descriptor?
У меня была эта ошибка, и я не могу найти какую-либо информацию о нем ...
*** TypeError: can't pickle method_descriptor objects
method_descriptor нормальный класс с __ __ получить, __ __ установить и __ __ дель методов. Вы можете проверить ссылку для получения дополнительной информации на Static vs instance methods of str in Python
Переключить на dill
.
Я не заинтересован в отладке эту ошибку ...
Вы должны быть. Если вы не заинтересованы в ошибках отладки, вы попали в неправильное поле. Ради вежливой аргументации, давайте любезно предположим, что вы создали that comment под давлением необоснованного срока. (Случается.)
Стандартный pickle
модуль не способен сериализации так называемые «экзотические виды», включая, но предположительно не ограничены: функции с yields
, вложенных друг в друга функции, лямбды, клетки, методы, несвязанный методы, модули, диапазоны, ломтики, code
объектов, methodwrapper
объектов, dictproxy
объектов, getsetdescriptor
объектов, memberdescriptor
объектов, wrapperdescriptor
объектов, notimplemented
объектов, ellipsis
объектов, quit
объектов и (... вдумайтесь!) method_descriptor
объектов.
Все не потеряно, однако. Третья сторона dill
package- это, способная сериализовать все эти типы и существенно больше. Так как dill
является заменой на pickle
, глобально заменяя все вызовы через вашу кодовую базу на функцию pickle.dump()
с эквивалентной функцией dill.dump()
. должно достаточно, чтобы рассортировать описательные дескрипторы метода.
Я просто хочу знать, что такое
method_descriptor
, на простом английском языке.
Нет, вы этого не сделаете. Там - это нет простого объяснения дескрипторов метода, потому что описательные дескрипторы метода descriptor protocol - это восхитительно темное вуду.
Это вуду, потому что это должно быть; это фундаментальная основа для основной реализации Python функций, свойств, статических методов и методов класса. Темно, потому что только сокращающаяся кабала скрытных питонистов на самом деле способна правильно реализовать дескриптор в дикой природе. Это вкусно, потому что сила, которая в частности обеспечивает data descriptors, является непарной в экосистеме Python.
К счастью, вам не нужно , чтобы узнать, какие дескрипторы метода должны их рассолить. Вам нужно только переключиться на dill
.
Классический stackoverflow, покровительствующий «вы задаете неправильный вопрос и не знаете, что хотите». Один для книги. – David
Не могли бы вы выслать код, который привел к этой ошибке? – aensm
Я подозреваю, что вы где-то забыли свои круглые скобки для вызова функций, поэтому ваш код пытается рассортировать метод вместо его возвращаемого значения. – user2357112
Возможный дубликат [Static vs instance methods of str в Python] (http://stackoverflow.com/questions/1180303/static-vs-instance-methods-of-str-in-python) – davidism