#!/usr/local/bin/python3
from types import MethodType

class C(object):
  def __init__(self):
    pass
    self.__setattr__ = MethodType(s, self)

  def __setattr__(self, key, value):
    print('set')
    if key == 'a':
      raise ValueError
    self.__dict__[key] = value

def s(self, key, value):
  print('set')
  if key == 'a':
    raise ValueError
  self.__dict__[key] = value

c = C()
c.a = 1
print(c.a)