2010-12-12 12 views
10

Bir işlevin iç içe geçmiş olmasının bir yolu var mıdır, böylece bana verdiği argümanlar hakkında bilgi verir (örneğin, hataların sayısı, eğer mümkünse tür, eğer varsa argümanların adı) ve dönüş değeri? dir() istediğimi yapmaya çalışmıyor. __doc__ dizesi bazen yöntem/işlev argümanlarını içerir, ancak çoğu zaman olmaz. Tüm bu bilgileri size vermelidirPython'da işlev imzası nasıl görüntülenir?

+0

, dokümantasyon (ille '__doc__') * olduğunu * en iyi bahis. – delnan

+1

İşlev imzasını görmek için. Adım 1. Kodu okuyun. 2. Adım. http://stackoverflow.com/questions/2677185/how-read-method-signature Bu, birkaç kez burada zaten cevaplandırılmıştır. Ayrıca, http://stackoverflow.com/questions/3375573/finding-a-functions-parameters-in-python. –

+1

Linkleri takdir ediyorum, ama dürüstçe sorduğum soru * çok * daha özlü ve açık bir şekilde ilettiklerini söyledi. Bu, en azından bir arama yaptım ve aramadan birkaç dakika sonra hiçbir şey ortaya atmadığı için ortaya çıktı. : \\ – mindthief

cevap

15

help(the_funcion).

Örnek: Genel olarak

>>> 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

Bir çekicilik gibi çalıştık, teşekkürler! İlgili diğer bir sorunun bu diğer çözümü de çalışır: 'import inspect print (inspect.getargspec (the_function))' ama help() çok daha iyi! – mindthief

+0

Şimdi 5 yıldır python ile çalışıyorum ve bunu bilmiyordum. Fantastik! –