Проблема не имеет ничего общего с сокетами. Вы определяете send_file
как метод экземпляра; поэтому в качестве первого аргумента всегда будет передаваться ссылка на сам экземпляр.
Если вы хотите сохранить его как метод экземпляра, подпись должна быть:
def send_file(self, path, Socket):
Вы также можете сделать это статическим методом:
@staticmethod
def send_file(path, Socket):
, что сделает его доступным для вызова как метод экземпляра (как вы делаете), но не передает экземпляр в качестве параметра.
Однако неясно, зачем вы вообще создаете класс sync
, так как вы, похоже, используете его не как объект для инкапсуляции данных, а просто для хранения одного метода, который не заботится о какой экземпляр он является членом. Почему бы просто не сделать send_file
обычной функцией?