class documentation

class FunctionDef(_base_nodes.MultiLineBlockNode, _base_nodes.Statement, Lambda): (source)

Known subclasses: astroid.nodes.scoped_nodes.AsyncFunctionDef, astroid.objects.PartialFunction, astroid.objects.Property

View In Hierarchy

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_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 doc.setter Undocumented
Method frame The node's frame node.
Method get_children Get the child nodes below this node.
Method igetattr Inferred getattr, which returns an iterator of inferred statements.
Method implicit_parameters Undocumented
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 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_node The doc node associated with this node.
Instance Variable instance_attrs 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_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 doc The function docstring.
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
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_type 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_lambda Undocumented
Class Variable special_attributes 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_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.

Inherited from NodeNG (via Lambda, LocalsDictNodeNG, LookupMixIn):

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 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 next_sibling The next sibling statement node.
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 previous_sibling The previous sibling statement.
Method repr_tree 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_statement Whether this node indicates a statement.
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.
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
@decorators_mod.deprecate_arguments(doc='Use the postinit arg \'doc_node\' instead')
def __init__(self, name=None, doc: str|None = None, lineno=None, col_offset=None, parent=None, *, end_lineno=None, end_col_offset=None): (source)

: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]

def block_range(self, lineno): (source)

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)

def bool_value(self, context: InferenceContext|None = None) -> bool: (source)

Determine the boolean value of this node. :returns: The boolean value of this node. For a :class:`FunctionDef` this is always ``True``.

@decorators_mod.cached
def decoratornames(self, context: InferenceContext|None = None): (source)

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)

@doc.setter
def doc(self, value: str|None): (source)

Undocumented

def frame(self: _T, *, future: Literal[None, True] = None) -> _T: (source)

The node's frame node. A frame node is a :class:`Module`, :class:`FunctionDef`, :class:`ClassDef` or :class:`Lambda`. :returns: The node itself.

def get_children(self): (source)

Get the child nodes below this node.

def igetattr(self, name, context: InferenceContext|None = None): (source)

Inferred getattr, which returns an iterator of inferred statements.

def implicit_parameters(self) -> Literal[0, 1]: (source)
def infer_call_result(self, caller=None, context: InferenceContext|None = None): (source)

Infer what the function returns when called. :returns: What the function returns. :rtype: iterable(NodeNG or Uninferable) or None

def infer_yield_result(self, context: InferenceContext|None = None): (source)

Infer what the function yields when called :returns: What the function yields :rtype: iterable(NodeNG or Uninferable) or None

def is_abstract(self, pass_is_abstract=True, any_raise_is_abstract=False) -> bool: (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: Whether the method is abstract.

def is_bound(self) -> bool: (source)

Check if the function is bound to an instance or class. :returns: Whether the function is bound to an instance or class.

def is_generator(self) -> bool: (source)

Check if this is a generator function. :returns: Whether this is a generator function.

def is_method(self) -> bool: (source)

Check if this function node represents a method. :returns: Whether this is a method.

def postinit(self, args: 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.

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 :class:`FunctionDef` this is always ``True``. :type: bool

type_annotation = (source)

If present, this will contain the type annotation passed by a type comment :type: NodeNG or None

The arguments that the function takes.

The contents of the function body. :type: list(NodeNG)

decorators = (source)

The decorators that are applied to this method or function.

doc_node = (source)

The doc node associated with this node.

The name of the function. :type name: str or None

position = (source)

Position of keyword(s) and name. Used as fallback for block nodes which might not provide good enough positional information. E.g. ClassDef, FunctionDef.

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

@cached_property
blockstart_tolineno = (source)

The line on which the beginning of this block ends. :type: int

The function docstring.

@cached_property
extra_decorators: list[node_classes.Call] = (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.

@cached_property
fromlineno: int|None = (source)

The first line that this node appears on in the source code.

@cached_property
type: str = (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