def values(self, key_type=None):
if(key_type is not None):<EOL><INDENT>all_items = {} <EOL>keys_used = set()<EOL>direct_key = str(key_type)<EOL>if direct_key in self.__dict__:<EOL><INDENT>for intermediate_key in self.__dict__[direct_key].values():<EOL><INDENT>if not intermediate_key in keys_used:<EOL><INDENT>all_items[intermediate_key] = self.items_dict[intermediate_key]<EOL>keys_used.add(intermediate_key)<EOL><DEDENT><DEDENT><DEDENT>return all_items.values()<EOL><DEDENT>else:<EOL><INDENT>return self.items_dict.values()<EOL><DEDENT>
Returns a copy of the dictionary's values.
            @param key_type if specified, only values pointed by keys of this type will be returned.
                 Otherwise list of all values contained in this dictionary will be returned.