From 458120dd40db6b4df55a4e96b650e16798ef06a0 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 3 May 2011 11:25:13 +0000 Subject: add hg and python --- sys/src/cmd/python/Demo/classes/Vec.py | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 sys/src/cmd/python/Demo/classes/Vec.py (limited to 'sys/src/cmd/python/Demo/classes/Vec.py') diff --git a/sys/src/cmd/python/Demo/classes/Vec.py b/sys/src/cmd/python/Demo/classes/Vec.py new file mode 100755 index 000000000..56cb83939 --- /dev/null +++ b/sys/src/cmd/python/Demo/classes/Vec.py @@ -0,0 +1,54 @@ +# A simple vector class + + +def vec(*v): + return Vec(*v) + + +class Vec: + + def __init__(self, *v): + self.v = list(v) + + def fromlist(self, v): + if not isinstance(v, list): + raise TypeError + self.v = v[:] + return self + + def __repr__(self): + return 'vec(' + repr(self.v)[1:-1] + ')' + + def __len__(self): + return len(self.v) + + def __getitem__(self, i): + return self.v[i] + + def __add__(self, other): + # Element-wise addition + v = map(lambda x, y: x+y, self, other) + return Vec().fromlist(v) + + def __sub__(self, other): + # Element-wise subtraction + v = map(lambda x, y: x-y, self, other) + return Vec().fromlist(v) + + def __mul__(self, scalar): + # Multiply by scalar + v = map(lambda x: x*scalar, self.v) + return Vec().fromlist(v) + + + +def test(): + a = vec(1, 2, 3) + b = vec(3, 2, 1) + print a + print b + print a+b + print a-b + print a*3.0 + +test() -- cgit v1.2.3