У меня есть несколько классов в этом проекте, и все они сталкиваются с одной и той же ситуацией, которую я собираюсь объяснить. Чтобы упростить вещи, я буду использовать один класс и детали его конкретной ситуации.
Класс
class ConnectedDevice(object):
def __init__(self, mac_address, ip_address):
self.mac_address = mac_address
self.ip_address = ip_address
Путь к этому № 1
Я мог создавать экземпляры с переменными-членами, заполненными через параметры конструктора.
Это можно было бы сделать с помощью отдельных функций вне класса внутри main, которые получают необходимую информацию.
def main():
mac_address = get_mac_address()
ip_address = get_ip_address()
Device0 = ConnectedDevice(mac_address, ip_address)
Путь к этому № 2
Я мог бы создавать экземпляры с None
в параметрах конструктора и использовать функции-члены постфактум для заполнения переменных-членов. Очевидно, для этого я бы определил функции-члены в своем классе.
def main():
Device0 = ConnectedDevice(None, None)
Device0.set_mac_address()
Device0.set_ip_address()
Вопрос
Я спрашиваю, какой лучший объектно-ориентированный способ сделать это?
- Способ сделать это # 1
- Путь к этому # 2