如何在python中从模块中获取函数的完整参数列表

2024-05-15 15:08:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我在命令提示符下使用iPython,windows7。你知道吗

我认为这很容易找到,我搜索并找到了关于如何使用inspect包的指导,但似乎inspect包是用于程序员创建的函数,而不是作为包的一部分的函数。你知道吗

我的主要目标是能够从iPython的命令提示符中使用帮助文件,能够查找csv.reader文件()并找出它的所有可能参数以及这些参数的所有可能值。你知道吗

在R编程中,这只是args(csv.reader文件())

我试过用google搜索这个,但他们都指向inspect包,也许我误解了它的用途?你知道吗

例如

如果我想查看所有可能参数的列表,以及csv.reader文件()函数(从导入csv包),我将如何做呢?你知道吗

我试过帮忙(csv.reader文件)但这并没有为我提供一份所有可能的论点及其潜在价值的清单“方言”出现了,但它没有告诉我csv.reader文件功能。你知道吗

我可以很容易地转到网站:https://docs.python.org/3/library/csv.html#csv-fmt-params,看到方言选项有:delimiter、doublequote、escapechar等。。等等,但是有没有办法在Python控制台中看到这一点?你知道吗

我也试过了(csv.reader文件)但这也不是我想要的。你知道吗

想弄清楚这件事的时候秃头了。。。。你知道吗


Tags: 文件csv函数目标参数编程ipythonreader
2条回答

inspect模块非常强大。要获取类的列表,例如在csv模块中,您可以:

import inspect, csv
from pprint import pprint

module = csv
mod_string = 'csv'
module_classes = inspect.getmembers(module, inspect.isclass)
for i in range(len(module_classes)):
  myclass = module_classes[i][0]
  myclass = mod_string+'.'+myclass
  myclass = eval(myclass)
  # could construct whatever query you want about this class here...
  # you'll need to play with this line to get what you want; it will failasis
  #line = inspect.formatargspect(*inspect.getfullargspec(myclass))
  pprint(myclass)

希望这能帮助你开始!你知道吗

一般来说没有办法做到这一点,help(<function>)至少会返回函数签名(包括参数名),Python是动态类型的,因此您不会得到任何类型,参数本身也不会告诉您有效值是什么。这就是好的docstring的用武之地。你知道吗

但是,csv模块确实有一个特定的函数用于列出方言:

>>> csv.list_dialects()
['excel', 'excel-tab', 'unix']
>>> help(csv.excel)
Help on class excel in module csv:

class excel(Dialect)
 |  Describe the usual properties of Excel-generated CSV files.
 ... 

相关问题 更多 >