Вот класс, который я создал для связи с устройством под названием «Waveplate». Класс Waveplate наследует атрибуты и методы serial.Serial Baseclass. Но, как вы видите, базовый серийный номер. Серийный номер должен быть инициализирован. То, что я сделал ниже, работает, мой вопрос, это самый элегантный способ?Инициализация базового слоя внутри метода класса __init__
import time
import serial
class WavePlate(serial.Serial):
""" This class returns an instance that contains the attributes and methods of a ``serial.Serial`` object.
"""
def __init__(self, p, brate):
"""Here's the constructor. """
self.p = p
self.brate = brate
serial.Serial.__init__(self, port=self.p, baudrate=self.brate, parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE)
[Python 'super()' считается супер!] (Https://rhettinger.wordpress.com/2011/05/26/super-considered-super/) – AChampion
Обычно вы вызываете базовый класс '__init__' first , затем сделайте все, что осталось для дочернего класса. Мне кажется подозрительным, что вы явно устанавливаете 'self.p' и' self.brate', * then * передаете одни и те же значения в 'Serial .__ init__'. – chepner
Спасибо, ребята .. super() звучит супер удивительно – Ravi