C'è un modo per analizzare una funzione in modo che mi mostri informazioni sugli argomenti necessari (come numero di argomenti, tipo se possibile, nome degli argomenti se nominati) e il valore restituito? dir()
non sembra fare quello che voglio. La stringa __doc__
a volte include argomenti metodo/funzione, ma spesso non lo fa.Come vedere la firma della funzione in Python?
10
A
risposta
15
help(the_funcion)
dovrebbe fornire tutte queste informazioni.
Esempio:
>>> help(enumerate)
Help on class enumerate in module __builtin__:
class enumerate(object)
| enumerate(iterable[, start]) -> iterator for index, value of iterable
|
| Return an enumerate object. iterable must be another object that supports
| iteration. The enumerate object yields pairs containing a count (from
| start, which defaults to zero) and a value yielded by the iterable argument
| enumerate is useful for obtaining an indexed list:
| (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
|
| Methods defined here:
|
| __getattribute__(...)
| x.__getattribute__('name') <==> x.name
|
| __iter__(...)
| x.__iter__() <==> iter(x)
|
| next(...)
| x.next() -> the next value, or raise StopIteration
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __new__ = <built-in method __new__ of type object>
| T.__new__(S, ...) -> a new object with type S, a subtype of T
+4
Ha funzionato come un fascino, grazie! Anche questa altra soluzione da una domanda correlata funziona: 'import inspect print (inspect.getargspec (the_function))' ma help() è molto meglio! – mindthief
+0
Ho lavorato con Python per oltre 5 anni e non ne sapevo nulla. Fantastico! –
Problemi correlati
- 1. Imposta la firma della funzione in Python
- 2. come generare la firma della funzione con sfinge?
- 3. Come stampare firma di funzione in javascript
- 4. Lanciare la parola chiave nella firma della funzione
- 5. Corrispondenza del modello in base alla firma della funzione
- 6. Ottieni la firma del metodo incorporata - Python
- 7. Come firmare e verificare la firma con ecdsa in python
- 8. come creare una funzione che restituisce un funtore con la stessa firma della funzione?
- 9. - Specifica dell'algoritmo della firma per la firma WS-Security Timestamp
- 10. Ripetere la chiamata della funzione Python all'eccezione?
- 11. firma Funzione come parametro di template
- 12. Come sovraccaricare su std: firma di funzione in C++
- 13. SecurityTokenSignatureKeyNotFoundException durante la convalida della firma JWT
- 14. Come funziona la funzione "tutto" in Python?
- 15. Come stampare la docstring della funzione python dall'interno della funzione stessa?
- 16. sovraccarico Funzione funzione utilizzando lambda firma
- 17. Funzione inversa Python della funzione integrata id (...)
- 18. Perché parola chiave Static prima della firma funzione di
- 19. Come ottenere il nome della funzione come stringa in Python?
- 20. Il C++ 0x consente decltype() nella firma della funzione?
- 21. Come può un decoratore passare le variabili in una funzione senza cambiarne la firma?
- 22. Ottenere la catena di firma PKCS7 in python
- 23. portata della funzione eval in python
- 24. boost :: enable_if non in funzione firma
- 25. Comportamento della funzione "round" in Python
- 26. Per ogni funzione della classe in python
- 27. La firma tipo di un combinatore non corrisponde alla firma di tipo della sua funzione lambda equivalente
- 28. Come posso ottenere PDVisibleSigProperties per scrivere la firma sulla pagina 3 nella casella della firma
- 29. Come specificare la matrice della classe nel parametro della firma del metodo GetMethodID?
- 30. Calcolo della derivata della funzione di densità cumulativa in Python
In generale, la documentazione (non necessariamente '__doc__') * è * la soluzione migliore. – delnan
Per vedere la firma della funzione. Passaggio 1. Leggere il codice. Passaggio 2. Cerca. http://stackoverflow.com/questions/2677185/how-read-method-signature Questo è già stato risposto qui più volte. http://stackoverflow.com/questions/3375573/finding-a-functions-parameters-in-python, anche. –
Apprezzo i link, ma onestamente penso che la mia domanda sia * molto * più succinta e chiara di quelle che hai inoltrato. Questo è almeno confermato dal fatto che ho fatto una ricerca e non è spuntato nulla dopo alcuni minuti di ricerca. : \ – mindthief