class FunctionDef(mixins.MultiLineBlockMixin, node_classes.Statement, Lambda): (source)
Known subclasses: astroid.nodes.scoped_nodes.AsyncFunctionDef
, astroid.objects.PartialFunction
, astroid.objects.Property
Constructor: FunctionDef(name, doc, lineno, col_offset, ...)
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 |
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 | frame |
The node's frame node. |
Method | get |
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 |
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 | special |
The names of special attributes that this function has. |
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 function's docstring. |
Instance Variable | instance |
Undocumented |
Instance Variable | name |
The name of the function. |
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 | 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 |
Inherited from MultiLineBlockMixin
:
Method | _get |
Undocumented |
Method | _get |
Undocumented |
Method | _get |
Undocumented |
Property | _multi |
Undocumented |
Inherited from Statement
(via MultiLineBlockMixin
):
Method | next |
The next sibling statement node. |
Method | previous |
The previous sibling statement. |
Class Variable | is |
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 |
Get the source code that this node represents. |
Method | callable |
Whether this node defines something that is callable. |
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 | 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 | repr |
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 |
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 |
Undocumented |
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. Note: This is after the last symbol. |
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 | _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 |
Inherited from Lambda
(via MultiLineBlockMixin
, Statement
, NodeNG
):
Method | argnames |
Get the names of each of the arguments. |
Method | display |
A human readable type of this node. |
Method | implicit |
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 |
Undocumented |
Method | _get |
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 |
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 |
append a child, linking it in the tree |
Method | _scope |
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. |
astroid.nodes.NodeNG.__init__
astroid.objects.PartialFunction
, astroid.objects.Property
Parameters | |
name:str or None | The name of the function. |
doc:str or None | The function's docstring. |
lineno:int or None | The line that this node appears on in the source code. |
col | The column that this node appears on in the source code. |
parent:NodeNG or None | The parent node in the syntax tree. |
end | The last line this node appears on in the source code. |
end | The end column this node appears on in the source code. Note: This is after the last symbol. |
astroid.nodes.NodeNG.block_range
Get a range from the given line number to where this node ends.
Parameters | |
lineno:int | Unused. |
Returns | |
tuple(int, int) | The range of line numbers that this node belongs to, |
astroid.nodes.NodeNG.bool_value
Determine the boolean value of this node.
Returns | |
bool | The boolean value of this node.
For a FunctionDef this is always True. |
Get the qualified names of each of the decorators on this function.
Parameters | |
context | An inference context that can be passed to inference functions |
Returns | |
set(str) | The names of the decorators. |
astroid.nodes.NodeNG.frame
The node's frame node.
A frame node is a Module
, FunctionDef
,
ClassDef
or Lambda
.
Returns | |
T | The node itself. |
this method doesn't look in the instance_attrs dictionary since it's done by an Instance proxy at inference time.
astroid.objects.PartialFunction
, astroid.objects.Property
Infer what the function returns when called.
Returns | |
iterable(NodeNG or Uninferable) or None | What the function returns. |
Infer what the function yields when called
Returns | |
iterable(NodeNG or Uninferable) or None | What the function yields |
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 | |
bool | True if the method is abstract, False otherwise. |
Check if the function is bound to an instance or class.
Returns | |
bool | True if the function is bound to an instance or class, False otherwise. |
Check if this is a generator function.
Returns | |
bool | True is this is a generator function, False otherwise. |
Check if this function node represents a method.
Returns | |
bool | True if this is a method, False otherwise. |
Arguments
, body, decorators=None, returns=None, type_comment_returns=None, type_comment_args=None):
(source)
¶
Do some setup after initialisation.
Parameters | |
args:Arguments | The arguments that the function takes. |
body:list(NodeNG) | The contents of the function body. |
decorators:Decorators or None | The decorators that are applied to this method or function. |
returns | Undocumented |
type | Undocumented |
type | Undocumented |
Unknown Field: params | |
type | The return type annotation passed via a type comment. |
type | The args type annotation passed via a type comment. |
astroid.nodes.NodeNG.is_function
Whether this node indicates a function.
For a FunctionDef
this is always True.
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.
astroid.nodes.NodeNG._astroid_fields
Node attributes that contain child nodes.
This is redefined in most concrete classes.