-
Notifications
You must be signed in to change notification settings - Fork 0
/
xp.py
44 lines (37 loc) · 1.03 KB
/
xp.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
import hashlib
class This():
str_var: str
int_var: int
float_var: float
bool_var: bool
list_var: list
dict_var: dict
tuple_var: tuple
set_var: set
id: str
def __init__(self):
self.str_var = 'str'
self.int_var = 11
self.float_var = 1.1
self.bool_var = True
self.list_var = [1, 2, 3]
self.dict_var = {'a': 1, 'b': 2}
self.tuple_var = (1, 2, 3)
self.set_var = {1, 2, 3}
self.id = self.get_id()
def __str__(self):
res = ""
for key in sorted(self.__dict__.keys()):
res += f"{key}: {str(self.__dict__[key]).encode()}\n"
return res
def get_id(self):
_id = ""
for key in sorted(self.__dict__.keys()):
if key == "id":
continue
_id += hashlib.sha256(str(self.__dict__[key]).encode()).hexdigest()
self.id = hashlib.sha256(_id.encode()).hexdigest()
return self.id
if __name__ == "__main__":
this = This()
print(this.get_id())