-
Notifications
You must be signed in to change notification settings - Fork 0
/
Fruit.py
51 lines (41 loc) · 1.88 KB
/
Fruit.py
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
50
51
from Trendency import Trend
from Error import ParamError
#This class is for fruit.It has method that construction a default object by Fruit().
#Besides,the name of method says all.
class Fruit:
def __init__(self,name,nutrition):
self.__error = False
if(isinstance(nutrition, dict)== False):
self.__error = True
raise ParamError('Error Param for initializing Fruit.')
self.attr = {'name':name,'nutrition': {}, 'score':0}
#for i in nutrition.keys():
#print(float(nutrition.get(i)))
#if((isinstance(nutrition.get(i), float) == False) and (isinstance(nutrition.get(i), int) == False)):
# raise ParamError('Error Param('+str(nutrition.get(i))+str(type(nutrition.get(i)))+') for Fruit!('+i+')')
self.attr['nutrition'] = nutrition
def __init__(self):
self.attr = {}
self.name = 'Apple'
self.attr.setdefault('VA', 0.4)
self.attr.setdefault('VB', 0.7)
self.attr.setdefault('VC', 1)
self.attr.setdefault('VD', 0.1)
self.attr.setdefault('Sugar', 0.5)
self.attr.setdefault('Protein', 0.1)
self.attr.setdefault('Fibre', 0.9)
self.attr.setdefault('score',0)
def Calculate(self,Trend):
#Calculating the score each kind of fruit with collected trendency
self.attr['score'] = 0
for i in self.attr['nutrition'].keys():
if(Trend.weight.get(i) == None):
#raise BaseException('Default value:',i)
self.attr['score'] = -9999
return -9999;
self.attr['score'] += float(Trend.weight.get(i)) * float(self.attr['nutrition'].get(i))
return self.attr['score']
def Print(self):
print('<CLASS Fruit> ',self.attr)
def ToString(self):
return '<CLASS Fruit> ' + str(self.attr)