-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinteger_sum_decorators.py
More file actions
58 lines (47 loc) · 1.26 KB
/
integer_sum_decorators.py
File metadata and controls
58 lines (47 loc) · 1.26 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
50
51
52
53
54
55
56
57
58
def flatten_lists(func):
def wrapper(*args):
flatten = []
print(args)
for each_item in args:
if type(each_item) == list:
for each in each_item:
flatten.append(each)
else:
flatten.append(each_item)
print(flatten)
result = func(*flatten)
return result
return wrapper
def convert_strings_to_ints(func):
def wrapper(*args):
new_args = []
print(args)
for each in args:
if type(each)==str:
if each.isdigit():
new_args.append(int(each))
else:
new_args.append(each)
print(new_args)
result = func(*new_args)
return result
return wrapper
def filter_integers(func):
def wrapper(*args):
new_args = []
for each in args:
if type(each) == int:
new_args.append(each)
print(new_args)
result = func(*new_args)
return result
return wrapper
@flatten_lists
@convert_strings_to_ints
@filter_integers
def integer_sum(*args):
# Write your code here.
return sum(list(args))
args = ["1", "2", -0.9, 4, [5, "hi", "3"]]
result = integer_sum(*args)
print(result)