Python 中如何查看一个函数都有什么参数

2019-10-22 14:59:27 +08:00
 smallpython
比如查看一个类有什么方法有内置的 dir()

那么查看一个函数有什么参数有什么内置方法吗?
8187 次点击
所在节点    Python
10 条回复
dji38838c
2019-10-22 15:02:42 +08:00
help()
arrow8899
2019-10-22 15:09:35 +08:00
def method(a, b, c):
----pass

print(method.__code__.co_varnames) # => ('a', 'b', 'c')
Latin
2019-10-22 15:11:10 +08:00
renmu
2019-10-22 15:11:15 +08:00
pycharm 输入函数追踪进去(逃
Anybfans
2019-10-22 15:28:55 +08:00
In [1]: import inspect

In [2]: def f(arg1, arg2):
...: print arg1, arg2

In [3]: inspect.getargspec(f)
Out[3]: ArgSpec(args=['arg1', 'arg2'], varargs=None, keywords=None, defaults=None)
ClericPy
2019-10-22 15:43:21 +08:00
楼上除了 5 楼有点贴近, 其他都像混子啊...

前两天刚实现了一个自动把 function 转 UI 的, 正好用到了这方面的内省知识

首先最推荐的是 inspect.signature, 具体用法看文档

其次是 5 楼类似那个的 inspect.getfullargspec, 这个比 5 楼那个得到的更全面一点, 不过归类做的不如 signature 好
locoz
2019-10-22 16:26:48 +08:00
这个叫内省,其实 Google 搜一下就知道了,在论坛上问反而效率低,因为很多人都不会用到
BigBug00
2019-10-22 16:55:13 +08:00
在 pycham 里按住 shift 点进去
smallpython
2019-10-22 16:57:46 +08:00
@ClericPy
@locoz
感谢
smallpython
2019-10-22 16:59:53 +08:00
@arrow8899 你这个厉害了, 是不是那些包的内部也是调用的你这个方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/611759

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX