Я пытаюсь создать класс, который может быть создан с взаимно исключающими аргументами. Например, наш класс принимает либо полный URL, либо создает его по частям:
def url('protocol','hostname','uri','port', 'url')
, но нам не нужны «протокол», «имя хоста», «uri», «порт», если мы предоставили полный 'url' это можно сделать с помощью необязательных аргументов, а затем проверить, что не пусто, но это действительно глупо:
def url('protocol'= None,'hostname' = None,'uri'= None,'port' = None, 'url'= None)
также я не вижу это как
def url(*args)
, потому что мы Придется создать парсер, чтобы увидеть, что нам передают.
Как мне создать методы с взаимоисключающими аргументами вроде этого?