TypeError: worker() takes 0 positional arguments but 1 was given

Solution 1:

Your worker method needs 'self' as a parameter, since it is a class method and not a function. Adding that should make it work fine.

Solution 2:

If the method doesn't require self as an argument, you can use the @staticmethod decorator to avoid the error:

class KeyStatisticCollection(DataDownloadUtilities.DataDownloadCollection):

    def GenerateAddressStrings(self):
        pass    

    @staticmethod
    def worker():
        pass

    def DownloadProc(self):
        pass

See https://docs.python.org/3/library/functions.html#staticmethod