Python 3.6
Я настраиваю интерфейс с устройством, доступным через остальные API. Есть многократные вызовы с похожими именами, которые станут длинными, и на самом деле не имеет смысла делать более длинные имена только для того, чтобы запоминать больше вещей для использования пакета. Я ищу элегантный питонический способ реализовать его как для простоты использования, так и для обслуживания. В идеале мне бы хотелось, чтобы это был способ организации функций (и возможность повторять имена функций) без потери доступа к функциям более низкого уровня. Внутренние классы выглядят грязно и должны быть созданы с родителем, чтобы работать, предпочтительно я бы хотел избежать создания дополнительных классов. внутренние классы с @classmethods не имеют доступа к переменным экземпляра внешнего класса.
Должен быть лучший способ. и есть ли способ разделить это на несколько файлов.
Я проверил следующие ссылки, которые выглядели похожими, но я не думаю, что они действительно соответствуют тому, что я делаю:
организация большого объекта python
https://easyaspython.com/mixins-for-fun-and-profit-cb9962760556
class BigClass:
def __enter__(self):
#create session
return self
def __exit__(self, type, value, traceback):
#Close session
pass
def sendApi(**kwargs):
print(kwargs)
#here is where I need some help
class Cat1:
def __init__(parent):
self.parent = parent
def dosomething(self):
#define kwargs
self.parent.sendApi(**kwargs)
class Cat2:
def __init__(parent):
self.parent = parent
def dosomething(self):
#define kwargs
self.parent.sendApi(**kwargs)
def __init__():
self.cat1 = Cat1(self)
self.cat2 = Cat2(self)
with BigClass() as myInstance:
myInstance.cat1.dosomething()
myInstance.cat2.dosomething()
Так что это работает, чтобы сделать вызовы, но
1 - его создание большого количестваклассы (более 50 кошек на 1 BigClass) и
2 - файл для BigClass становится очень длинным