Skip to content

Commit 87292fa

Browse files
committed
TR updates, first round
1 parent ebece93 commit 87292fa

File tree

6 files changed

+49
-81
lines changed

6 files changed

+49
-81
lines changed

python-callable-instances/cum_average.py

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
def cumulative_average():
2+
data = []
3+
4+
def average(new_value):
5+
data.append(new_value)
6+
return sum(data) / len(data)
7+
8+
return average
9+
10+
11+
class CumulativeAverager:
12+
def __init__(self):
13+
self.data = []
14+
15+
def __call__(self, new_value):
16+
self.data.append(new_value)
17+
return sum(self.data) / len(self.data)

python-callable-instances/factorial.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ def __init__(self):
33
self.cache = {0: 1, 1: 1}
44

55
def __call__(self, number):
6-
if number in self.cache:
7-
return self.cache[number]
8-
else:
9-
self.cache[number] = number * self.__call__(number - 1)
10-
return self.cache[number]
6+
if number not in self.cache:
7+
self.cache[number] = number * self(number - 1)
8+
return self.cache[number]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Logger:
2+
def __init__(self, filename):
3+
self.filename = filename
4+
5+
def __call__(self, message):
6+
with open(self.filename, mode="a", encoding="utf-8") as log_file:
7+
log_file.write(message + "\n")

python-callable-instances/shopping.py

Lines changed: 0 additions & 38 deletions
This file was deleted.
Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
11
import time
22

3-
# class time_execution:
3+
# class ExecutionTimer:
44
# def __init__(self, func):
55
# self.func = func
66

77
# def __call__(self, *args, **kwargs):
8-
# start = time.time()
8+
# start = time.perf_counter()
99
# result = self.func(*args, **kwargs)
10-
# end = time.time()
11-
# print(f"{self.func.__name__}() takes {(end - start) * 1000:.4f} ms")
10+
# end = time.perf_counter()
11+
# print(f"{self.func.__name__}() took {(end - start) * 1000:.4f} ms")
1212
# return result
1313

1414

15-
class time_execution:
15+
class ExecutionTimer:
1616
def __init__(self, repetitions=1):
1717
self.repetitions = repetitions
1818

19-
def __call__(self, func):
20-
def _timer(*args, **kwargs):
19+
20+
def __call__(self, func):
21+
def _timer(*args, **kwargs):
22+
result = None
23+
total_time = 0
24+
print(f"Running {func.__name__}() {self.repetitions} times")
25+
for _ in range(self.repetitions):
26+
start = time.time()
2127
result = func(*args, **kwargs)
22-
total_time = 0
23-
print(f"Running {func.__name__}() {self.repetitions} times")
24-
for _ in range(self.repetitions):
25-
start = time.time()
26-
func(*args, **kwargs)
27-
end = time.time()
28-
total_time += end - start
29-
average_time = total_time / self.repetitions
30-
print(
31-
f"{func.__name__}() takes "
32-
f"{average_time * 1000:.4f} ms on average"
33-
)
34-
return result
28+
end = time.time()
29+
total_time += end - start
30+
average_time = total_time / self.repetitions
31+
print(
32+
f"{func.__name__}() takes "
33+
f"{average_time * 1000:.4f} ms on average"
34+
)
35+
return result
3536

36-
return _timer
37+
return _timer

0 commit comments

Comments
 (0)