2017-08-27 5 views
1

dans python3.6python3.6 peut pickle instance méthode staticmethod classmethod, mais le document dit None?

class C: 
    class_var = 'class_var' 
    @staticmethod 
    def s(): 
     pass 
    @classmethod 
    def c(cls): 
     pass 
    def i(self): 
     pass 


import pickle 
pickle.dumps(C.class_var) # ok 
pickle.dumps(C.i) #ok 
pickle.dumps(C.s) # ok 
pickle.dumps(C.c) # ok 

mais dans python3.4 code ci-dessus est une erreur! et le moindre document ne dit rien à ce sujet. ni dire deux versions moudle pickling changement, ni dire pickleiing est ok maintenant.

Répondre

0

this patch a atterri dans python3.5 et semble être ce que vous cherchez.

Here's la validation associée.

here's l'entrée dans le changelog pour python3.5

Le patch mentionne brièvement « méthodes non liées » comme usecase possible si elle est principalement centrée autour dépicklage dans les espaces de noms profonds/classes imbriquées.