Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
info:cursos:pue:python-pcpp1:m1:5.1 [05/11/2023 21:35] – ↷ Page moved from info:cursos:pue:python-pcpp1:5.1 to info:cursos:pue:python-pcpp1:m1:5.1 mateinfo:cursos:pue:python-pcpp1:m1:5.1 [06/11/2023 10:03] (actual) – [resposta] mate
Línia 329: Línia 329:
 def get_instantiation_time(self): def get_instantiation_time(self):
     human_readable = datetime.datetime.fromtimestamp(self.instantiation_time)     human_readable = datetime.datetime.fromtimestamp(self.instantiation_time)
-    print(f"Hora d'instanciament de la classe: {human_readable.strftime('%H:%M:%S')} ({self.instantiation_time})")+    print(f"Hora d'instanciament de la classe {type(self).__name__}: {human_readable.strftime('%H:%M:%S')} ({self.instantiation_time})")
  
 class MetaClassInstantation(type): class MetaClassInstantation(type):
Línia 336: Línia 336:
         if 'get_instantiation_time' not in dictionary:         if 'get_instantiation_time' not in dictionary:
             dictionary['get_instantiation_time'] = get_instantiation_time             dictionary['get_instantiation_time'] = get_instantiation_time
-        MetaClassInstantation.instantiated.append(MetaClassInstantation.__name__)+        MetaClassInstantation.instantiated.append(name)
         obj = super().__new__(mcs,name,bases,dictionary)         obj = super().__new__(mcs,name,bases,dictionary)
         obj.instantiation_time = time.time()         obj.instantiation_time = time.time()
Línia 353: Línia 353:
 dos.get_instantiation_time() dos.get_instantiation_time()
  
 +print(MetaClassInstantation.instantiated)
 </code> </code>
  
 <code ; output> <code ; output>
-Hora d'instanciament de la classe: 19:10:52 (1699121452.3203268+Hora d'instanciament de la classe Uno09:02:36 (1699261356.0724955
-Hora d'instanciament de la classe: 19:10:52 (1699121452.320343)+Hora d'instanciament de la classe Dos09:02:36 (1699261356.0725198) 
 +['Uno', 'Dos'
 +</code> 
 + 
 +<code python ; resposta oficial> 
 +import time 
 + 
 +def get_class_instantiation_time(self): 
 +    return self.class_instantiation_time 
 + 
 +class CleanCodeGuard(type): 
 +    classes_created = [] 
 + 
 +    def __new__(mcs, name, bases, dictionary): 
 +        if 'get_class_instantiation_time' not in dictionary: 
 +            dictionary['get_class_instantiation_time'] = get_class_instantiation_time 
 +        obj = super().__new__(mcs, name, bases, dictionary) 
 + 
 +        obj.class_instantiation_time = time.time() 
 +        CleanCodeGuard.classes_created.append(name) 
 +        time.sleep(1) 
 +        return obj 
 + 
 +class My_Class1(metaclass=CleanCodeGuard): 
 +    pass 
 + 
 +class My_Class2(metaclass=CleanCodeGuard): 
 +    pass 
 + 
 +my_object1 = My_Class1() 
 +print(my_object1.get_class_instantiation_time()) 
 + 
 +my_object2 = My_Class2() 
 +print(my_object2.get_class_instantiation_time()) 
 + 
 +print(CleanCodeGuard.classes_created) 
 </code> </code>
  
  • info/cursos/pue/python-pcpp1/m1/5.1.1699216517.txt.gz
  • Darrera modificació: 06/07/2026 18:29
  • (edició externa)