Statement class

(Shortest import: from brian2 import Statement)

class brian2.codegen.statements.Statement(var, op, expr, comment, dtype, constant=False, subexpression=False, scalar=False)[source]

Bases: object

A single line mathematical statement.

The structure is var op expr.


var : str

The left hand side of the statement, the value being written to.

op : str

The operation, can be any of the standard Python operators (including += etc.) or a special operator := which means you are defining a new symbol (whereas = means you are setting the value of an existing symbol).

expr : str, Expression

The right hand side of the statement.

dtype : dtype

The numpy dtype of the value or array var().

constant : bool, optional

Set this flag to True if the value will not change (only applies for op==':='.

subexpression : bool, optional

Set this flag to True if the variable is a subexpression. In some languages (e.g. Python) you can use this to save a memory copy, because you don’t need to do lhs[:] = rhs but a redefinition lhs = rhs.

scalar : bool, optional

Set this flag to True if var() and expr are scalar.


Will compute the following attributes:

True or False depending if the operation is in-place or not.