• 封装的意义.


    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
    插卡
    用户认证
    输入金额
    打印金额
    

      

  • 相关阅读:
    acm课程练习2--1005
    acm课程练习2--1003
    [ZJOI2010]网络扩容
    [ZJOI2009]狼和羊的故事
    [FJOI2007]轮状病毒
    [NOIP2016提高组]换教室
    [NOIP2016提高组]愤怒的小鸟
    [NOIP2009提高组]最优贸易
    [洛谷P2245]星际导航
    [NOIP2013提高组]货车运输
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/10269549.html
Copyright © 2020-2023  润新知