docstr: set zmq options by attribute
docstr_tok: ["set","zmq","options","by","attribute"]
code: def __setattr__(self, key, value):
      """set zmq options by attribute"""
  
      if key in self.__dict__:
          object.__setattr__(self, key, value)
          return
      # regular setattr only allowed for class-defined attributes
      for obj in self.__class__.mro():
          if key in obj.__dict__:
              object.__setattr__(self, key, value)
              return
  
      upper_key = key.upper()
      try:
          opt = getattr(constants, upper_key)
      except AttributeError:
          raise AttributeError(
              "%s has no such option: %s"
              % (self.__class__.__name__, upper_key)
          )
      else:
          self._set_attr_opt(upper_key, opt, value)
  
imports: import errno
  from .None import constants
label_desc: Use image node_id 1 for calling the AttributeSetter obj's underlying member method code with example usage: obj.__setattr__(key, value) without return types