parameters: (self)
return_statement: return [Definition(self._evaluator, n) for n in get_param_names(context)]
docstring: Raises an ``AttributeError``if the definition is not callable.
          Otherwise returns a list of `Definition` that represents the params.
docstring_summary: Raises an ``AttributeError``if the definition is not callable.
          Otherwise returns a list of `Definition` that represents the params.
docstring_tokens: Raises an AttributeError if the definition is not callable . Otherwise returns a list of Definition that represents the params .
function: def params(self):
          """
          Raises an ``AttributeError``if the definition is not callable.
          Otherwise returns a list of `Definition` that represents the params.
          """
          def get_param_names(context):
              param_names = []
              if context.api_type == 'function':
                  param_names = list(context.get_param_names())
                  if isinstance(context, instance.BoundMethod):
                      param_names = param_names[1:]
              elif isinstance(context, (instance.AbstractInstanceContext, ClassContext)):
                  if isinstance(context, ClassContext):
                      search = u'__init__'
                  else:
                      search = u'__call__'
                  names = context.get_function_slot_names(search)
                  if not names:
                      return []
  
                  # Just take the first one here, not optimal, but currently
                  # there's no better solution.
                  inferred = names[0].infer()
                  param_names = get_param_names(next(iter(inferred)))
                  if isinstance(context, ClassContext):
                      param_names = param_names[1:]
                  return param_names
              elif isinstance(context, compiled.CompiledObject):
                  return list(context.get_param_names())
              return param_names
  
          followed = list(self._name.infer())
          if not followed or not hasattr(followed[0], 'py__call__'):
              raise AttributeError()
          context = followed[0]  # only check the first one.
  
          return [Definition(self._evaluator, n) for n in get_param_names(context)]
function_tokens: def params ( self ) : def get_param_names ( context ) : param_names = [ ] if context . api_type == 'function' : param_names = list ( context . get_param_names ( ) ) if isinstance ( context , instance . BoundMethod ) : param_names = param_names [ 1 : ] elif isinstance ( context , ( instance . AbstractInstanceContext , ClassContext ) ) : if isinstance ( context , ClassContext ) : search = u'__init__' else : search = u'__call__' names = context . get_function_slot_names ( search ) if not names : return [ ] # Just take the first one here, not optimal, but currently # there's no better solution. inferred = names [ 0 ] . infer ( ) param_names = get_param_names ( next ( iter ( inferred ) ) ) if isinstance ( context , ClassContext ) : param_names = param_names [ 1 : ] return param_names elif isinstance ( context , compiled . CompiledObject ) : return list ( context . get_param_names ( ) ) return param_names followed = list ( self . _name . infer ( ) ) if not followed or not hasattr ( followed [ 0 ] , 'py__call__' ) : raise AttributeError ( ) context = followed [ 0 ] # only check the first one. return [ Definition ( self . _evaluator , n ) for n in get_param_names ( context ) ]