我可以在python中做到這一點,它給了我函數內可用的子模塊/參數。探測python函數
在解釋,我可以這樣做:
>>> from nltk import pos_tag
>>> dir(pos_tag)
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']
順便說一句,什麼是dir(function)
電話嗎?
如何知道調用函數需要哪些參數?例如在pos_tag
的情況下,源代碼的說,它需要token
,看到https://github.com/nltk/nltk/blob/develop/nltk/tag/init.py
def pos_tag(tokens):
"""
Use NLTK's currently recommended part of speech tagger to
tag the given list of tokens.
>>> from nltk.tag import pos_tag # doctest: +SKIP
>>> from nltk.tokenize import word_tokenize # doctest: +SKIP
>>> pos_tag(word_tokenize("John's big idea isn't all that bad.")) # doctest: +SKIP
[('John', 'NNP'), ("'s", 'POS'), ('big', 'JJ'), ('idea', 'NN'), ('is',
'VBZ'), ("n't", 'RB'), ('all', 'DT'), ('that', 'DT'), ('bad', 'JJ'),
('.', '.')]
:param tokens: Sequence of tokens to be tagged
:type tokens: list(str)
:return: The tagged tokens
:rtype: list(tuple(str, str))
"""
tagger = load(_POS_TAGGER)
return tagger.tag(tokens)
如果文檔字符串可用於功能是有沒有辦法知道什麼是參數類型的函數需要一個具體參數?,例如在pos_tag
以上的案例中,它的編號爲:param tokens: Sequence of tokens to be tagged
和:type tokens: list(str)
運行解釋器時未讀取代碼就可以獲取這些信息嗎?
最後,有沒有辦法知道什麼是返回類型?
只是要清楚,我不期待的文檔字符串的打印輸出,但上面的問題是,這樣我可以做某種類型與isinstance(output_object, type)
很好的答案!!!! – alvas 2014-12-03 13:27:43
@alvas你問很好的問題!我愛你如何深入挖掘nltk。 – 2014-12-03 13:51:44