code: def attributes(self):
          
          itr = iter(())
          if self.is_function:
              it = ffi.lib.LLVMPY_FunctionAttributesIter(self)
              itr = _AttributeListIterator(it)
          elif self.is_instruction:
              if self.opcode == 'call':
                  it = ffi.lib.LLVMPY_CallInstAttributesIter(self)
                  itr = _AttributeListIterator(it)
              elif self.opcode == 'invoke':
                  it = ffi.lib.LLVMPY_InvokeInstAttributesIter(self)
                  itr = _AttributeListIterator(it)
          elif self.is_global:
              it = ffi.lib.LLVMPY_GlobalAttributesIter(self)
              itr = _AttributeSetIterator(it)
          elif self.is_argument:
              it = ffi.lib.LLVMPY_ArgumentAttributesIter(self)
              itr = _AttributeSetIterator(it)
          return itr
docs: Return an iterator over this value's attributes.
          The iterator will yield a string for each attribute.