Насколько я понимаю, каждый Switch
будет содержать один Buttons
объект, который содержит словарь, представляющий несколько кнопок.
Класс Switches
представляет собой несколько переключателей:
Просто присвойте каждому переключателю атрибут кнопок:
class Switch:
def __init__(self):
self.switches = {}
def add_switch(self, number, buttons):
self.switches[number] = buttons
И при создании передачи переключателя в объекте Buttons
:
switches = Switches(b)
b = Buttons(2, "scene")
switches.add_switch(10, b)
И вы по-прежнему можете получить доступ к основным кнопкам переключателя. Например, добавление кнопок к 10-му переключателю:
switch.switches[10].add_btn(...)
И если вы хотите быть модным, вы можете реализовать __getitem__
, чтобы можно было индексировать switch
напрямую. Внутри Switches
:
def __getitem__(self, item):
return self.switches[item]
С помощью этого метода вы можете добавлять кнопки напрямую:
switch[10].add_btn(...)
Класс HttpListener инкапсулирует встроенный API, Функцию HttpSendHttpResponse, которая, как указано в ссылке будет всегда добавлять нелепый текст к информации заголовка сервера.
Нет никакого пути, как зафиксировать это, если Вы не хотите кодировать свой HttpListener с нуля.
Я действительно пробовал, но это возвращается с Моим Персональным Сервером Microsoft-HTTPAPI/2.0
Я также использовал без успеха, установил, удалите, добавьте, addheader
private void ProcessRequest(IAsyncResult result)
{
HttpListener listener = (HttpListener)result.AsyncState;
HttpListenerContext context = listener.EndGetContext(result);
string responseString = "<html>Hello World</html>";
byte[] buffer = Encoding.UTF8.GetBytes(responseString);
context.Response.ContentLength64 = buffer.Length;
//One
context.Response.AddHeader("Server", "My Personal Server");
//Two
context.Response.Headers.Remove(HttpResponseHeader.Server);
context.Response.Headers.Add(HttpResponseHeader.Server, "My Personal Server");
//Three
context.Response.Headers.Set(HttpResponseHeader.Server, "My Personal Server");
System.IO.Stream output = context.Response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
Listener.BeginGetContext(ProcessRequest, Listener);
}
Спасибо Elijah