python之封装

模拟手机网络切换的功能

代码部分 实际手机 用户能否看到
__is_5g_enable 手机系统里的5G开关状态 ❌ 看不到底层代码
__check_5g() 系统自动检测网络信号 ❌ 看不到检测过程
call_by_5g() 📱 拨号按钮 ✅ 用户点击的界面按钮

用户只需要:

  1. 打开手机

  2. 点击"拨号"按钮(call_by_5g()

  3. 手机自动:

    • 检测5G是否开启(__check_5g()

    • 显示网络状态

    • 开始通话

用户完全不用管内部怎么检测、怎么判断的!

复制代码
class Phone:
    # 获取用户输入
    user_input = input("请输入(True/False):")
    # 判断并赋值
    if user_input == "True":
        __is_5g_enable = True
    else:
        __is_5g_enable = False
    def __check_5g(self):
        if self.__is_5g_enable:
            return f"5g开启"
        else:
            return f"5g关闭,使用4g网络"
    def call_by_5g(self):
        end = self.__check_5g()
        print(end)
        print("正在通话中")


phone = Phone()
phone.call_by_5g()
  1. 私有成员(双下划线 __ 只能在类内部使用

  2. 公有方法 是给外部用户使用的接口

  3. 用户通过公有方法 call_by_5g() 间接使用私有功能

  4. 这就是封装思想:隐藏实现细节,暴露简单接口

场景 能否访问私有成员
公有方法内部 ✅ 可以
私有方法内部 ✅ 可以(互相调用)
类外部直接访问 ❌ 不可以

一句话总结: 私有成员只能在类的内部 被访问,外部只能通过公有方法间接使用。