|
- import sys
- import time
- from collections import namedtuple
-
- from memory_profiler import profile
-
- class A:
-
- __slots__ = ('_name', '_age', '_score')
-
- def __init__(self, name=None, age=None, score=None):
- self._name = 'aaaa'
- self._age = 'vbba'
- self._score = '1111'
-
- def test1(self):
- num =1
- while True:
- num = num + 1
- if num > 1000000:
- break
- ddd=self._name
- for i in range(100):
- ddd
-
- class B(A):
- # __slots__ = ()
- def __init__(self):
- super().__init__()
-
- def test(self):
- print(self._name)
- a= A()
- b = B()
- b.test()
- # print(b._name)
- # print(sys.getsizeof(a), sys.getsizeof(b))
- # print(sys.getsizeof(a.__dict__), sys.getsizeof(b.__dict__))
- @profile
- def main():
- Point = namedtuple('Point', ('x', 'y', 'z'))
- object_list = [Point(i,i,i) for i in range(100000)]
-
- if __name__=='__main__':
- # main()
- # print(A().__dict__)
- ss = time.time()
- A().test1()
- print(time.time() - ss)
|