Skip to content

synt.stmt.returns ¤

return_ module-attribute ¤

return_ = Return

Alias Return.

ret module-attribute ¤

ret = Return

Alias Return.

Return ¤

Bases: Statement

The return statement.

Examples:

1
2
3
4
return_stmt = return_(litint(42))
assert return_stmt.into_code() == "return 42"
return_stmt = ret()
assert return_stmt.into_code() == "return"
References

Returns.

Source code in synt/stmt/returns.py
class Return(Statement):
    r"""The `return` statement.

    Examples:
        ```python
        return_stmt = return_(litint(42))
        assert return_stmt.into_code() == "return 42"
        return_stmt = ret()
        assert return_stmt.into_code() == "return"
        ```

    References:
        [`Returns`](https://docs.python.org/3/library/ast.html#ast.Return).
    """

    expression: Expression | None
    """The value to return from the function."""

    def __init__(self, expression: IntoExpression | None = None):
        """Initialize the return statement.

        Args:
            expression: The value to return from the function.
        """
        if expression:
            self.expression = expression.into_expression()
        else:
            self.expression = None

    def indented(self, indent_width: int, indent_atom: str) -> str:
        if self.expression:
            return f"{indent_atom * indent_width}return {self.expression.into_code()}"
        else:
            return f"{indent_atom * indent_width}return"

expression instance-attribute ¤

expression: Expression | None

The value to return from the function.

__init__ ¤

__init__(expression: IntoExpression | None = None)

Initialize the return statement.

Parameters:

Name Type Description Default
expression IntoExpression | None

The value to return from the function.

None
Source code in synt/stmt/returns.py
def __init__(self, expression: IntoExpression | None = None):
    """Initialize the return statement.

    Args:
        expression: The value to return from the function.
    """
    if expression:
        self.expression = expression.into_expression()
    else:
        self.expression = None

indented ¤

indented(indent_width: int, indent_atom: str) -> str
Source code in synt/stmt/returns.py
def indented(self, indent_width: int, indent_atom: str) -> str:
    if self.expression:
        return f"{indent_atom * indent_width}return {self.expression.into_code()}"
    else:
        return f"{indent_atom * indent_width}return"