电脑学堂
第二套高阶模板 · 更大气的阅读体验

用Python面向对象编程管理家庭网络设备

发布时间:2026-01-06 11:30:53 阅读:9 次

家里路由器、智能灯泡、摄像头越来越多,想让它们配合工作,光靠手机App可不够灵活。这时候,写点小程序就能派上用场。比如用Python写个控制中心,把每个设备当成一个“对象”来管理,代码清楚又好扩展。

什么是面向对象?就像给每个家电建档案

你家的智能插座和温控器,虽然功能不同,但都有“开关”和“状态”。在Python里,可以定义一个“设备”类,作为所有家电的模板:

class Device:
    def __init__(self, name, ip):
        self.name = name
        self.ip = ip
        self.is_on = False

    def turn_on(self):
        self.is_on = True
        print(f"{self.name} 已开启")

    def turn_off(self):
        self.is_on = False
        print(f"{self.name} 已关闭")

有了这个类,创建新设备就像填表格一样简单:

lamp = Device("客厅灯", "192.168.1.10")
router = Device("主路由", "192.168.1.1")

调用 lamp.turn_on(),屏幕上就显示“客厅灯已开启”,不用再翻半天App。

子类继承,让设备各司其职

灯能调亮度,空调能设温度,这些特殊功能可以在子类里加。比如从Device派生出Light类:

class Light(Device):
    def __init__(self, name, ip, brightness=50):
        super().__init__(name, ip)
        self.brightness = brightness

    def set_brightness(self, level):
        self.brightness = level
        print(f"{self.name} 亮度设为 {level}%")

现在这盏灯既有开关,也能调光:

smart_lamp = Light("卧室灯", "192.168.1.11")
smart_lamp.turn_on()
smart_lamp.set_brightness(80)

实际用起来:自动检测离线设备

家里网络不稳定时,总得一个个查设备是否在线。用面向对象的方式,可以统一处理:

import random

def check_status(device):
    # 模拟网络检测
    is_online = random.choice([True, True, True, False])
    if not is_online:
        print(f"⚠ {device.name}({device.ip}) 可能已离线")
    else:
        state = "开启" if device.is_on else "关闭"
        print(f"✅ {device.name} 在线,当前状态:{state}")

把所有设备放进列表,一键巡检:

devices = [lamp, router, smart_lamp]
for d in devices:
    check_status(d)

哪台连不上一眼就能看出来,比手动登录路由器后台快多了。

扩展方便,以后加设备不重写

明年买了智能窗帘,只要照着现有模式新建一个Curtain类,继承Device,加上open和close方法,立马就能接入原来的系统。代码结构清晰,改一处,处处都能用。

用Python面向对象的方式管理家庭网络,不只是写代码,更像是在搭建自家的数字管家。每个设备有身份、有行为,组合起来就是一套听话的小团队。