-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfield.py
More file actions
49 lines (38 loc) · 1.39 KB
/
field.py
File metadata and controls
49 lines (38 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import random
class field(object):
value = 0
# parameterized constructor
# default value for having multiple constructor
def __init__(self, fieldSize, value=0):
if(fieldSize < value):
print("you can't set the value greater than your filed size")
else:
self.fieldSize = fieldSize
self.value = value
def displaySize(self):
print(self.fieldSize)
def setValue(self, value):
if (value < self.fieldSize):
self.value = value
else:
print("Unacceptable range.")
# return
def getValue(self):
return self.value
def getFieldSize(self):
return self.fieldSize
# def __del__(self):
# print("Class deleted")
# override function
def __add__(self, other):
# handle this with assert
assert(self.fieldSize == other.getFieldSize()
), "To add two different value their filed size must be the same."
tempValue = (self.value + other.value) % self.fieldSize
return field(self.fieldSize, tempValue)
def __mul__(self, other):
# handle this with assert
assert(self.fieldSize == other.getFieldSize()
), "To add two different value their filed size must be the same."
tempValue = (self.value * other.value) % self.fieldSize
return field(self.fieldSize, tempValue)