2008-12-26 6 views
1

Lorsque j'essaie d'utiliser introspection pour regarder quelles méthodes sont disponibles sur threading.Lock je ne vois pas ce que je m'attendais.Python introspection ne pas afficher les fonctions pour verrouiller

Spécifiquement je ne vois pas acquérir, libérer ou verrouillé. Pourquoi est-ce?

Voici ce que je ne vois:

>>> dir (threading.Lock) 
['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__str__'] 

Répondre

5

Vous le faites mal. threading.Lock n'est pas un objet.

>>> import threading 
>>> threading.Lock 
<built-in function allocate_lock> 
>>> type(threading.Lock) 
<type 'builtin_function_or_method'> 
>>> x=threading.Lock() 
>>> type(x) 
<type 'thread.lock'> 
>>> dir(x) 
['__enter__', '__exit__', 'acquire', 'acquire_lock', 'locked', 'locked_lock', 'release', 'release_lock'] 
>>> 
+0

Clever. Merci! – Hortitude

Questions connexes