class documentation

class FunctionDef(mixins.MultiLineBlockMixin, node_classes.Statement, Lambda): (source)

Known subclasses: astroid.nodes.scoped_nodes.AsyncFunctionDef

View In Hierarchy

Class representing an 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__
Method block​_range Get a range from the given line number to where this node ends.
Method bool​_value Determine the boolean value of this node.
Method decoratornames Get the qualified names of each of the decorators on this function.
Method frame The node's frame node.
Method get​_children Get the child nodes below this node.
Method getattr this method doesn't look in the instance_attrs dictionary since it's done by an Instance proxy at inference time.
Method igetattr Inferred getattr, which returns an iterator of inferred statements.
Method infer​_call​_result Infer what the function returns when called.
Method infer​_yield​_result Infer what the function yields when called
Method is​_abstract Check if the method is abstract.
Method is​_bound Check if the function is bound to an instance or class.
Method is​_generator Check if this is a generator function.
Method is​_method Check if this function node represents a method.
Method postinit Do some setup after initialisation.
Method scope​_lookup Lookup where the given name is assigned.
Class Variable is​_function Whether this node indicates a function.
Class Variable special​_attributes The names of special attributes that this function has.
Class Variable type​_annotation 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 function's docstring.
Instance Variable instance​_attrs Undocumented
Instance Variable name The name of the function.
Instance Variable returns Undocumented
Instance Variable type​_comment​_args If present, this will contain the type annotation for arguments passed by a type comment
Instance Variable type​_comment​_returns If present, this will contain the return type annotation, passed by a type comment
Property blockstart​_tolineno The line on which the beginning of this block ends.
Property extra​_decorators 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​_fields Node attributes that contain child nodes.
Class Variable _multi​_line​_block​_fields Undocumented
Class Variable _other​_fields Node attributes that do not contain child nodes.
Class Variable _other​_other​_fields Attributes that contain AST-dependent fields.
Class Variable _type Undocumented

Inherited from MultiLineBlockMixin:

Method _get​_assign​_nodes Undocumented
Method _get​_return​_nodes​_skip​_functions Undocumented
Method _get​_yield​_nodes​_skip​_lambdas Undocumented
Property _multi​_line​_blocks Undocumented

Inherited from Statement:

Method next​_sibling The next sibling statement node.
Method previous​_sibling The previous sibling statement.
Class Variable is​_statement Whether this node indicates a statement.

Inherited from NodeNG (via Statement):

Method __repr__ Undocumented
Method __str__ Undocumented
Method accept Visit this node using the given visitor.
Method as​_string Get the source code that this node represents.
Method callable Whether this node defines something that is callable.
Method child​_sequence Search for the sequence that contains this child.
Method eq Undocumented
Method has​_base 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​_class Instantiate an instance of the defined class.
Method last​_child An optimized version of list(get_children())[-1]
Method locate​_child Find the field of this node that contains the given child.
Method node​_ancestors Yield parent, grandparent, etc until there are no more.
Method nodes​_of​_class Get the nodes (including this one or below) of the given types.
Method op​_left​_associative Undocumented
Method op​_precedence Undocumented
Method parent​_of Check if this node is the parent of the given node.
Method repr​_tree Get a string representation of the AST from this node.
Method root Return the root node of the syntax tree.
Method scope The first parent node defining a new scope. These can be Module, FunctionDef, ClassDef, Lambda, or GeneratorExp nodes.
Method set​_local Define that the given name is declared in the given statement node.
Method statement The first parent node, including self, marked as statement node.
Class Variable is​_lambda Undocumented
Class Variable optional​_assign Whether this node optionally assigns a variable.
Instance Variable col​_offset The column that this node appears on in the source code.
Instance Variable end​_col​_offset The end column this node appears on in the source code. Note: This is after the last symbol.
Instance Variable end​_lineno 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​_source​_line Attempt to find the line that this node appears on.
Method _get​_assign​_nodes Undocumented
Method _get​_name​_nodes Undocumented
Method _get​_return​_nodes​_skip​_functions Undocumented
Method _get​_yield​_nodes​_skip​_lambdas Undocumented
Method _infer we don't know how to resolve a statement by default
Method _infer​_name Undocumented
Method _repr​_name Get a name for nice representation.
Class Variable _explicit​_inference Undocumented

Inherited from Lambda:

Method argnames Get the names of each of the arguments.
Method callable Whether this node defines something that is callable.
Method display​_type A human readable type of this node.
Method implicit​_parameters Undocumented
Method pytype Get the name of the type that this node represents.
Class Variable is​_lambda Undocumented
Instance Variable locals A map of the name of a local variable to the node defining it.

Inherited from FilterStmtsMixin (via Lambda):

Method assign​_type Undocumented
Method _get​_filtered​_stmts method used in _filter_stmts to get statements and trigger break

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​_local​_node 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​_local 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​_node append a child, linking it in the tree
Method _scope​_lookup 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.
def __init__(self, name=None, doc=None, lineno=None, col_offset=None, parent=None, *, end_lineno=None, end_col_offset=None): (source)
Parameters
name:str or NoneThe name of the function.
doc:str or NoneThe function's docstring.
lineno:int or NoneThe line that this node appears on in the source code.
col​_offset:int or NoneThe column that this node appears on in the source code.
parent:NodeNG or NoneThe parent node in the syntax tree.
end​_lineno:Optional[int]The last line this node appears on in the source code.
end​_col​_offset:Optional[int]The end column this node appears on in the source code. Note: This is after the last symbol.
def block_range(self, lineno): (source)
Get a range from the given line number to where this node ends.
Parameters
lineno:intUnused.
Returns
tuple(int, int)The range of line numbers that this node belongs to,
def bool_value(self, context=None): (source)
Determine the boolean value of this node.
Returns
boolThe boolean value of this node. For a FunctionDef this is always True.
@decorators_mod.cached
def decoratornames(self, context=None): (source)
Get the qualified names of each of the decorators on this function.
Parameters
contextAn inference context that can be passed to inference functions
Returns
set(str)The names of the decorators.
def frame(self, *, future=None): (source)

The node's frame node.

A frame node is a Module, FunctionDef, ClassDef or Lambda.

Parameters
future:Literal[None, True]Undocumented
Returns
TThe node itself.
def get_children(self): (source)
Get the child nodes below this node.
def getattr(self, name, context=None): (source)
this method doesn't look in the instance_attrs dictionary since it's done by an Instance proxy at inference time.
def igetattr(self, name, context=None): (source)
Inferred getattr, which returns an iterator of inferred statements.
def infer_call_result(self, caller=None, context=None): (source)
Infer what the function returns when called.
Returns
iterable(NodeNG or Uninferable) or NoneWhat the function returns.
def infer_yield_result(self, context=None): (source)
Infer what the function yields when called
Returns
iterable(NodeNG or Uninferable) or NoneWhat the function yields
def is_abstract(self, pass_is_abstract=True, any_raise_is_abstract=False): (source)

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
boolTrue if the method is abstract, False otherwise.
def is_bound(self): (source)
Check if the function is bound to an instance or class.
Returns
boolTrue if the function is bound to an instance or class, False otherwise.
def is_generator(self): (source)
Check if this is a generator function.
Returns
boolTrue is this is a generator function, False otherwise.
def is_method(self): (source)
Check if this function node represents a method.
Returns
boolTrue if this is a method, False otherwise.
def postinit(self, args, body, decorators=None, returns=None, type_comment_returns=None, type_comment_args=None): (source)
Do some setup after initialisation.
Parameters
args:ArgumentsThe arguments that the function takes.
body:list(NodeNG)The contents of the function body.
decorators:Decorators or NoneThe decorators that are applied to this method or function.
returnsUndocumented
type​_comment​_returnsUndocumented
type​_comment​_argsUndocumented
Unknown Field: params
type​_comment​_returnsThe return type annotation passed via a type comment.
type​_comment​_argsThe args type annotation passed via a type comment.
def scope_lookup(self, node, name, offset=0): (source)
Lookup where the given name is assigned.
is_function: bool = (source)

Whether this node indicates a function.

For a FunctionDef this is always True.

special_attributes = (source)
The names of special attributes that this function has.
type_annotation = (source)
If present, this will contain the type annotation passed by a type comment
args = (source)
The arguments that the function takes.
body = (source)
The contents of the function body.
decorators = (source)
The decorators that are applied to this method or function.
The function's docstring.
instance_attrs: dict = (source)

Undocumented

name = (source)
The name of the function.
returns = (source)

Undocumented

type_comment_args = (source)
If present, this will contain the type annotation for arguments passed by a type comment
type_comment_returns = (source)
If present, this will contain the return type annotation, passed by a type comment
@decorators_mod.cachedproperty
blockstart_tolineno = (source)
The line on which the beginning of this block ends.
@decorators_mod.cachedproperty
extra_decorators = (source)

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.

@decorators_mod.cachedproperty
fromlineno = (source)
The first line that this node appears on in the source code.
@decorators_mod.cachedproperty
type = (source)

The function type for this node.

Possible values are: method, function, staticmethod, classmethod.

_astroid_fields: tuple[str, ...] = (source)

Node attributes that contain child nodes.

This is redefined in most concrete classes.

_multi_line_block_fields: tuple[str, ...] = (source)

Undocumented

_other_fields: tuple[str, ...] = (source)
Node attributes that do not contain child nodes.
_other_other_fields: tuple[str, ...] = (source)
Attributes that contain AST-dependent fields.
_type = (source)

Undocumented