I try to make a class containing file names in a folder. But I want it to behave like set. Now I have this:

```
class Files():

    def __init__(self, in_dir):
        self.in_dir = in_dir
        self.files = set(map(os.path.basename, glob.glob(self.in_dir + "/*.txt")))

    def __add__(self, other):
        return self.files + other.files    

    def __or__(self, other):
        return self.files | other.files

    def __and__(self, other):
        return self.files & other.files

    def __xor__(self, other):
        return self.files ^ other.files

```

This work and I can do like this:

```
f1 = Files(inDir1)
f2 = Files(inDir2)

diff_files = f1 ^ f2 % this give files that are in f1 or f2 folder but not in both  folders

```

This is ok, but the problem is that `diff_files` is not instance of `Files`. How to change my class, to behave like set in python 3.x?