«
class documentation

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__ No summary
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 (via MultiLineBlockMixin):

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 MultiLineBlockMixin, 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_name_nodes 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 (via MultiLineBlockMixin, Statement, NodeNG):

Method argnames Get the names of each of the arguments.
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.
Instance Variable locals A map of the name of a local variable to the node defining it.

Inherited from FilterStmtsMixin (via MultiLineBlockMixin, Statement, NodeNG, Lambda):

Method assign_type Undocumented
Method _get_filtered_stmts method used in _filter_stmts to get statements and trigger break

Inherited from LocalsDictNodeNG (via MultiLineBlockMixin, Statement, NodeNG, Lambda, FilterStmtsMixin):

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 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 MultiLineBlockMixin, Statement, NodeNG, Lambda, FilterStmtsMixin, 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: T, *, future: Literal[None, True] = None) -> T: (source)

The node's frame node.

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

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: Arguments, 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

The arguments that the function takes.

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

The name of the function.

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.

Undocumented