def __iter__(self, current=0):
    'Iterates over all Attr in this CDF or variable\n\n        Returns name of one L{Attr} at a time until reaches the end.\n        @note: Returned in number order.\n        '
    count = ctypes.c_long(0)
    self._cdf_file._call(const.GET_, const.CDF_NUMATTRS_, ctypes.byref(count))
    while (current < count.value):
        candidate = self.AttrType(self._cdf_file, current)
        if (candidate.global_scope() == self.global_scope):
            if ((self.special_entry is None) or candidate.has_entry(self.special_entry())):
                if (str == bytes):
                    value = (yield candidate._name)
                else:
                    value = (yield candidate._name.decode())
                if (value != None):
                    current = self[value].number()
        current += 1
Iterates over all Attr in this CDF or variable

Returns name of one L{Attr} at a time until reaches the end.
@note: Returned in number order.
def __iter__(self, current=0):
    'Iterates over all Attr in this CDF or variable\n\n        Returns name of one L{Attr} at a time until reaches the end.\n        @note: Returned in number order.\n        '
    count = ctypes.c_long(0)
    self._cdf_file._call(const.GET_, const.CDF_NUMATTRS_, ctypes.byref(count))
    while (current < count.value):
        candidate = self.AttrType(self._cdf_file, current)
        if (candidate.global_scope() == self.global_scope):
            if ((self.special_entry is None) or candidate.has_entry(self.special_entry())):
                if (str == bytes):
                    value = (yield candidate._name)
                else:
                    value = (yield candidate._name.decode())
                if (value != None):
                    current = self[value].number()
        current += 1