返回列表 发帖

python得到方法中形参的个数

提示: 作者被禁止或删除 内容自动屏蔽

这个还真没研究过,等待其他高手解答。
让中国Python发展的更快 ,更好.

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

回复 3# 168wen2003 的帖子

我想先问一句,然后再回答这个问题:python以外的语言里面是否有获取参数个数的方法或者类似的用法?
最新文档、技术交流,Q群:65372447

TOP

回复 5# 的帖子

提示: 作者被禁止或删除 内容自动屏蔽

TOP

我举一个例子:
  1. >>> def test(a,b,c=True,d=False,*e,**f):
  2. ...         pass
  3. ...
  4. >>> import inspect
  5. >>> inspect.getargspec(test)
  6. (['a', 'b', 'c', 'd'], 'e', 'f', (True, False))
复制代码
这样的话应该可以解决你的问题了.
再用代码说明你的问题:
  1. >>> class A:
  2. ...         def __init__(self,name):
  3. ...                 pass
  4. ...         def display(self,name):
  5. ...                 pass
  6. ...        
  7. >>> a=A('aaaa')
  8. >>> inspect.getargspec(a.display)
  9. (['self'], None, None, None)
  10. >>> class A:
  11. ...         def __init__(self,name):
  12. ...                 pass
  13. ...         def display(self,name):
  14. ...                 pass
  15. ...
  16. >>> a=A('aaaa')
  17. >>> inspect.getargspec(a.display)
  18. (['self', 'name'], None, None, None)
复制代码

TOP

回复 6# zjxplq 的帖子

提示: 作者被禁止或删除 内容自动屏蔽

TOP

检查函数最重要的一个函数是inspect.getargspec(),它返回的信息是关于函数接受的参数。它只接受一个参数,被检查的函数对象,返回一个元组,有以下的值:

1)args -- 所有参数名称的列表,如果函数不接受任何参数,这就是一个空列表
2)varargs -- 过量位置参数中的变量名称,就像先前说的。如果函数不接受过量位置参数,它就为None
3)varkwargs -- 过量关键字参数的变量名称,前面也说过。如果函数不接受过量关键字参数,它就为None
4)defaults -- 函数参数中默认值的元组,如果没有参数的默认值,就是None,而不是空元组

这些值代表了任何方式去调用函数的所有的必要信息。当接受一个函数,然后用合适的参数来调用它,这样处理时是上面的值非常有用。

>>> def test(a, b, c=True, d=False, *e, **f):
...     pass
...
>>> import inspect
>>> inspect.getargspec(test)
(['a', 'b', 'c', 'd'], 'e', 'f', (True, False))

TOP

回复 8# zjxplq 的帖子

提示: 作者被禁止或删除 内容自动屏蔽

TOP

回复 9# 168wen2003 的帖子

没有,这个内容是前些天看电子书pro django看到的

TOP

返回列表