Browse Source

Eval

pull/3/head
Jure Šorn 6 years ago
parent
commit
befbe0d31d
1 changed files with 10 additions and 10 deletions
  1. 20
      README.md

20
README.md

@ -1007,17 +1007,17 @@ Eval
### Detailed ### Detailed
```python ```python
import ast from ast import Num, BinOp, UnaryOp, parse, Add, Sub, Mult, Div, Pow, BitXor, \
from ast import Num, BinOp, UnaryOp, parse USub
import operator as op import operator as op
operators = {ast.Add: op.add, operators = {Add: op.add,
ast.Sub: op.sub, Sub: op.sub,
ast.Mult: op.mul, Mult: op.mul,
ast.Div: op.truediv, Div: op.truediv,
ast.Pow: op.pow, Pow: op.pow,
ast.BitXor: op.xor, BitXor: op.xor,
ast.USub: op.neg} USub: op.neg}
def evaluate(expression): def evaluate(expression):
root = parse(expression, mode='eval') root = parse(expression, mode='eval')
@ -1034,7 +1034,7 @@ def eval_node(node):
left, right = eval_node(node.left), eval_node(node.right) left, right = eval_node(node.left), eval_node(node.right)
return operator(left, right) return operator(left, right)
elif type_ == UnaryOp: elif type_ == UnaryOp:
operand = eval_node(node.operand) operand = eval_node(node.operand)
return operator(operand) return operator(operand)
``` ```

|||||||
100:0
Loading…
Cancel
Save