def decorator_factory(type_):
def decorator(cls):
cls.contaVarClasse = sum(
isinstance(value, type_)
for name, value in vars(cls).items()
if not (name.startswith('__') and name.endswith('__'))
)
return cls
return decorator
@decorator_factory(str)
class MyClass:
countme = "b"
notme = 2
def __init__(self):
self.dontcountme = "a"
self.norme = 5
print(MyClass.contaVarClasse)
ZGVmIGRlY29yYXRvcl9mYWN0b3J5KHR5cGVfKToKICAgIGRlZiBkZWNvcmF0b3IoY2xzKToKICAgICAgICBjbHMuY29udGFWYXJDbGFzc2UgPSBzdW0oCiAgICAgICAgICAgIGlzaW5zdGFuY2UodmFsdWUsIHR5cGVfKQogICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gdmFycyhjbHMpLml0ZW1zKCkKICAgICAgICAgICAgaWYgbm90IChuYW1lLnN0YXJ0c3dpdGgoJ19fJykgYW5kIG5hbWUuZW5kc3dpdGgoJ19fJykpCiAgICAgICAgKQogICAgICAgIHJldHVybiBjbHMKICAgIHJldHVybiBkZWNvcmF0b3IKCkBkZWNvcmF0b3JfZmFjdG9yeShzdHIpCmNsYXNzIE15Q2xhc3M6CiAgICBjb3VudG1lID0gImIiCiAgICBub3RtZSA9IDIKCiAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgc2VsZi5kb250Y291bnRtZSA9ICJhIgogICAgICAgIHNlbGYubm9ybWUgPSA1CgpwcmludChNeUNsYXNzLmNvbnRhVmFyQ2xhc3NlKQo=