Допустим, у нас есть конкретизацияПонимание Python класса и базового класса
client = PiHttpClient("192.168.1.234")
# RPi native GPIO
gpio = NativeGPIO(client)
gpio.setFunction(25, "out")
state = True
И из кода clients.py меня
class PiMixedClient():
def __init__(self, host, port=8000, coap=5683):
def sendRequest(self, method, uri):
class PiHttpClient(PiMixedClient):
def __init__(self, host, port=8000):
PiMixedClient.__init__(self, host, port, -1)
class NativeGPIO(GPIO):
def __init__(self, client):
RESTAPI.__init__(self, client, "/GPIO")
class GPIO(Device):
def __init__(self, client, name):
Device.__init__(self, client, name, "digital")
def getFunction(self, channel):
return self.sendRequest("GET", "/%d/function" % channel)
def setFunction(self, channel, func):
return self.sendRequest("POST", "/%d/function/%s" % (channel, func))
class Device(RESTAPI):
def __init__(self, client, name, category):
RESTAPI.__init__(self, client, "/devices/" + name + "/" + category)
class RESTAPI():
def __init__(self, client, path):
self.client = client
self.path = path
def sendRequest(self, method, path):
return self.client.sendRequest(method, self.path + path)
Таким образом, из сказанного выше, когда он делает PiHttpClient ("192.168.1.234") host = "192.168.1.234", правильно? но init (self, host, port = 8000) ищет себя, хост. Я не видел, как себя передавали в качестве аргумента.
затем внутри PiMixedClient, потому что PiHttpClient расширение PiMixedClient, то ее хозяина и само должно быть таким же, как PiMixedClient
затем GPIO = NativeGPIO (клиент) снова внутри INIT из NativeGPIO _ инициализации (self, client), от вызывающей функции мне не нужно снабжать себя?
поэтому при расширении до самого низкого уровня он становится базовым классом RESTAPI, его метод sendRequest принадлежит клиенту, который из sendRequest класса PiMixedClient?
исправьте ваш отступ .. – adil