Skip to content

Commit 7688def

Browse files
committed
mouredev#23 - python
1 parent 53dbae9 commit 7688def

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
def singleton(cls):
2+
instances = dict()
3+
4+
def wrap(*args, **kwargs):
5+
if cls not in instances:
6+
instances[cls] = cls(*args, **kwargs)
7+
return instances[cls]
8+
9+
return wrap
10+
11+
12+
@singleton
13+
class UserSession:
14+
def __init__(self):
15+
self.user_data = {}
16+
17+
def set_user(self, user_id, username, name, email):
18+
self.user_data[user_id] = {
19+
'username': username,
20+
'name': name,
21+
'email': email
22+
}
23+
24+
def get_user(self, user_id):
25+
if user_id in self.user_data:
26+
return self.user_data.get(user_id, None)
27+
return f'ID {user_id} not found'
28+
29+
def clear_user(self, user_id):
30+
if user_id in self.user_data:
31+
del self.user_data[user_id]
32+
return f'ID {user_id} deleted'
33+
return f'ID {user_id} not found'
34+
35+
36+
if __name__ == '__main__':
37+
sessions = UserSession()
38+
sessions.set_user(
39+
1,
40+
'Juan',
41+
'Juan Perez',
42+
43+
)
44+
print(sessions.get_user(1))
45+
46+
sessions.set_user(
47+
2,
48+
'Maria',
49+
'Maria Perez',
50+
51+
)
52+
print(sessions.get_user(2))
53+
54+
print(sessions.get_user(3))
55+
56+
print(sessions.clear_user(1))
57+
58+
print(sessions.get_user(1))
59+
60+
sessions2 = UserSession()
61+
62+
print(sessions is sessions2)

0 commit comments

Comments
 (0)