zoukankan      html  css  js  c++  java
  • 封装的意义.

    1.对数据属性操作严格控制.  (对属性的操作 selfe.__property)  属性需要打印出来.

    2.隔离复杂度.(对方法的操作 self.__method)

    1. 案例一.控制属性 .

    class Teacher():
        def __init__(self,name,age):
            self.name =name
            self.__age =age
            print(self.name)
            print(self.__age)
    
        def tell_info(self):
            # print("姓名:%s,年龄:%s" %(self.__name,self.__age))
            print("姓名:{},年龄:{}".format(self.name,self.__age))
    
        def set_info(self,name,age):
            if not isinstance(name,str):
                raise TypeError("姓名必须是字符串")
            if not isinstance(age,int):
    
                raise TypeError("年龄必须是整形")
            self.name =name
            self.__age =age
    
    
    t =Teacher("egon",18)
    t.tell_info()
    
    print(t.name)
    print(t.__age)  #会报错,无法访问.

    打印结果:
    C:Python37pythonw.exe C:/Users/acer_NK/PycharmProjects/untitled6/99.py
    egon
    18
    姓名:egon,年龄:18
    egon
    

      

    2.隔离复杂度,隐藏方法.

    class ATM:
    
        def __card(self):
            print("插卡")
        def __auth(self):
            print("用户认证")
        def __input(self):
            print("输入金额")
        def __print_bill(self):
            print('打印金额')
    
        def withdraw(self):
            self.__card()
            self.__auth()
            self.__input()
            self.__print_bill()
    a =ATM()
    a.withdraw()
    
    C:Python37pythonw.exe C:/Users/acer_NK/PycharmProjects/untitled6/88.py
    插卡
    用户认证
    输入金额
    打印金额
    

      

  • 相关阅读:
    打印机无法打印文件
    .Net com组件操作excel(不建议采用Com组件操作excel)
    Zebra
    Map遍历方式
    PageHelper原理
    MySQL8.0新特性
    算法_插入排序
    贝叶斯定理
    二叉树学习笔记
    Java校验时间段重叠
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/10269549.html
Copyright © 2011-2022 走看看