class FunctionDef(_base_nodes.MultiLineBlockNode, _base_nodes.Statement, Lambda): (source)
Known subclasses: astroid.nodes.scoped_nodes.AsyncFunctionDef
, astroid.objects.PartialFunction
, astroid.objects.Property
Class representing an :class:`ast.FunctionDef`. >>> import astroid >>> node = astroid.extract_node(''' ... def my_func(arg): ... return arg + 1 ... ''') >>> node <FunctionDef.my_func l.2 at 0x7f23b2e71e10>
Method | __init__ |
:param name: The name of the function. :type name: str or None |
Method | block |
Get a range from the given line number to where this node ends. |
Method | bool |
Determine the boolean value of this node. |
Method | decoratornames |
Get the qualified names of each of the decorators on this function. |
Method | doc |
Undocumented |
Method | frame |
The node's frame node. |
Method | get |
Get the child nodes below this node. |
Method | igetattr |
Inferred getattr, which returns an iterator of inferred statements. |
Method | implicit |
Undocumented |
Method | infer |
Infer what the function returns when called. |
Method | infer |
Infer what the function yields when called |
Method | is |
Check if the method is abstract. |
Method | is |
Check if the function is bound to an instance or class. |
Method | is |
Check if this is a generator function. |
Method | is |
Check if this function node represents a method. |
Method | postinit |
Do some setup after initialisation. |
Method | scope |
Lookup where the given name is assigned. |
Class Variable | is |
Whether this node indicates a function. |
Class Variable | type |
If present, this will contain the type annotation passed by a type comment |
Instance Variable | args |
The arguments that the function takes. |
Instance Variable | body |
The contents of the function body. |
Instance Variable | decorators |
The decorators that are applied to this method or function. |
Instance Variable | doc |
The doc node associated with this node. |
Instance Variable | instance |
Undocumented |
Instance Variable | name |
The name of the function. |
Instance Variable | position |
Position of keyword(s) and name. |
Instance Variable | returns |
Undocumented |
Instance Variable | type |
If present, this will contain the type annotation for arguments passed by a type comment |
Instance Variable | type |
If present, this will contain the return type annotation, passed by a type comment |
Property | blockstart |
The line on which the beginning of this block ends. |
Property | doc |
The function docstring. |
Property | extra |
The extra decorators that this function can have. |
Property | fromlineno |
The first line that this node appears on in the source code. |
Property | type |
The function type for this node. |
Class Variable | _astroid |
Node attributes that contain child nodes. |
Class Variable | _multi |
Undocumented |
Class Variable | _other |
Node attributes that do not contain child nodes. |
Class Variable | _other |
Attributes that contain AST-dependent fields. |
Class Variable | _type |
Undocumented |
Instance Variable | _doc |
The function docstring. |
Inherited from Lambda
:
Method | argnames |
Get the names of each of the arguments, including that of the collections of variable-length arguments ("args", "kwargs", etc.), as well as positional-only and keyword-only arguments. |
Method | callable |
Whether this node defines something that is callable. |
Method | display |
A human readable type of this node. |
Method | getattr |
Undocumented |
Method | pytype |
Get the name of the type that this node represents. |
Class Variable | is |
Undocumented |
Class Variable | special |
The names of special attributes that this function has. |
Instance Variable | locals |
A map of the name of a local variable to the node defining it. |
Inherited from LocalsDictNodeNG
(via Lambda
):
Method | __contains__ |
Check if a local is defined in this scope. |
Method | __getitem__ |
The first node the defines the given local. |
Method | __iter__ |
Iterate over the names of locals defined in this scoped node. |
Method | add |
Append a child that should alter the locals of this scope node. |
Method | items |
Get the names of the locals and the node that defines the local. |
Method | keys |
The names of locals defined in this scoped node. |
Method | qname |
Get the 'qualified' name of the node. |
Method | scope |
The first parent node defining a new scope. |
Method | set |
Define that the given name is declared in the given statement node. |
Method | values |
The nodes that define the locals in this scoped node. |
Method | _append |
append a child, linking it in the tree |
Method | _scope |
XXX method for interfacing the scope lookup |
Inherited from LookupMixIn
(via Lambda
, LocalsDictNodeNG
):
Method | ilookup |
Lookup the inferred values of the given variable. |
Method | lookup |
Lookup where the given variable is assigned. |
Inherited from NodeNG
(via Lambda
, LocalsDictNodeNG
, LookupMixIn
):
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | accept |
Visit this node using the given visitor. |
Method | as |
Get the source code that this node represents. |
Method | child |
Search for the sequence that contains this child. |
Method | eq |
Undocumented |
Method | has |
Check if this node inherits from the given type. |
Method | infer |
Get a generator of the inferred values. |
Method | inferred |
Get a list of the inferred values. |
Method | instantiate |
Instantiate an instance of the defined class. |
Method | last |
An optimized version of list(get_children())[-1]. |
Method | locate |
Find the field of this node that contains the given child. |
Method | next |
The next sibling statement node. |
Method | node |
Yield parent, grandparent, etc until there are no more. |
Method | nodes |
Get the nodes (including this one or below) of the given types. |
Method | op |
Undocumented |
Method | op |
Undocumented |
Method | parent |
Check if this node is the parent of the given node. |
Method | previous |
The previous sibling statement. |
Method | repr |
Get a string representation of the AST from this node. |
Method | root |
Return the root node of the syntax tree. |
Method | statement |
The first parent node, including self, marked as statement node. |
Class Variable | is |
Whether this node indicates a statement. |
Class Variable | optional |
Whether this node optionally assigns a variable. |
Instance Variable | col |
The column that this node appears on in the source code. |
Instance Variable | end |
The end column this node appears on in the source code. |
Instance Variable | end |
The last line this node appears on in the source code. |
Instance Variable | lineno |
The line that this node appears on in the source code. |
Instance Variable | parent |
The parent node in the syntax tree. |
Property | tolineno |
The last line that this node appears on in the source code. |
Method | _fixed |
Attempt to find the line that this node appears on. |
Method | _get |
Undocumented |
Method | _get |
Undocumented |
Method | _get |
Undocumented |
Method | _get |
Undocumented |
Method | _infer |
We don't know how to resolve a statement by default. |
Method | _infer |
Undocumented |
Method | _repr |
Get a name for nice representation. |
Class Variable | _explicit |
Undocumented |
def __init__(self, name=None, doc:
str|None
= None, lineno=None, col_offset=None, parent=None, *, end_lineno=None, end_col_offset=None):
(source)
¶
astroid.objects.PartialFunction
, astroid.objects.Property
:param name: The name of the function. :type name: str or None :param doc: The function docstring. :param lineno: The line that this node appears on in the source code. :type lineno: int or None :param col_offset: The column that this node appears on in the source code. :type col_offset: int or None :param parent: The parent node in the syntax tree. :type parent: NodeNG or None :param end_lineno: The last line this node appears on in the source code. :type end_lineno: Optional[int] :param end_col_offset: The end column this node appears on in the source code. Note: This is after the last symbol. :type end_col_offset: Optional[int]
astroid.nodes.NodeNG.block_range
Get a range from the given line number to where this node ends. :param lineno: Unused. :type lineno: int :returns: The range of line numbers that this node belongs to, :rtype: tuple(int, int)
Determine the boolean value of this node. :returns: The boolean value of this node. For a :class:`FunctionDef` this is always ``True``.
Get the qualified names of each of the decorators on this function. :param context: An inference context that can be passed to inference functions :returns: The names of the decorators. :rtype: set(str)
astroid.nodes.scoped_nodes.Lambda.frame
The node's frame node. A frame node is a :class:`Module`, :class:`FunctionDef`, :class:`ClassDef` or :class:`Lambda`. :returns: The node itself.
astroid.objects.PartialFunction
, astroid.objects.Property
Infer what the function returns when called. :returns: What the function returns. :rtype: iterable(NodeNG or Uninferable) or None
Infer what the function yields when called :returns: What the function yields :rtype: iterable(NodeNG or Uninferable) or None
Check if the method is abstract. A method is considered abstract if any of the following is true: * The only statement is 'raise NotImplementedError' * The only statement is 'raise <SomeException>' and any_raise_is_abstract is True * The only statement is 'pass' and pass_is_abstract is True * The method is annotated with abc.astractproperty/abc.abstractmethod :returns: Whether the method is abstract.
Check if the function is bound to an instance or class. :returns: Whether the function is bound to an instance or class.
Arguments
, body, decorators: node_classes.Decorators|None
= None, returns=None, type_comment_returns=None, type_comment_args=None, *, position: Position|None
= None, doc_node: Const|None
= None):
(source)
¶
Do some setup after initialisation. :param args: The arguments that the function takes. :param body: The contents of the function body. :type body: list(NodeNG) :param decorators: The decorators that are applied to this method or function. :type decorators: Decorators or None :params type_comment_returns: The return type annotation passed via a type comment. :params type_comment_args: The args type annotation passed via a type comment. :params position: Position of function keyword(s) and name. :param doc_node: The doc node associated with this node.
astroid.nodes.NodeNG.is_function
Whether this node indicates a function. For a :class:`FunctionDef` this is always ``True``. :type: bool
astroid.nodes.scoped_nodes.Lambda.body
The contents of the function body. :type: list(NodeNG)
astroid.nodes.NodeNG.position
Position of keyword(s) and name. Used as fallback for block nodes which might not provide good enough positional information. E.g. ClassDef, FunctionDef.
The extra decorators that this function can have. Additional decorators are considered when they are used as assignments, as in ``method = staticmethod(method)``. The property will return all the callables that are used for decoration.
astroid.nodes.NodeNG.fromlineno
The first line that this node appears on in the source code.
astroid.nodes.scoped_nodes.Lambda.type
astroid.objects.Property
The function type for this node. Possible values are: method, function, staticmethod, classmethod.