码迷,mamicode.com
首页 > 其他好文 > 详细

3.1.7 封装的应用

时间:2018-05-31 00:25:15      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:info   字符   return   str   mon   ini   用户认证   字符串类   pre   

一:封装数据属性:明确的区分内外,控制外部对隐藏的属性的操作行为

如: 如果直接对name进行操作,控制不了输入的合法性。可对其进行隐藏,然后开放接口,在接口内部进行校验。

class People:
    def __init__(self,name,age):
        self.__name=name
        self.__age=age
    def tell_info(self):
        print(‘Name:<%s> Age:<%s>‘ %(self.__name,self.__age))
    def set_info(self,name,age):
        if not isinstance(name,str):
            print(‘名字必须是字符串类型‘)
            return
        if not isinstance(age,int):
            print(‘年龄必须是数字类型‘)
            return
        self.__name=name
        self.__age=age

p=People(‘egon‘,18)

# p.tell_info()

# p.(‘EGON‘,38)
p.tell_info()

p.set_info(123,38)
p.set_info(‘egon‘,‘38‘)
p.tell_info()

  

二、 封装方法:隔离复杂度

class ATM:
    def __card(self):
        print(‘插卡‘)
    def __auth(self):
        print(‘用户认证‘)
    def __input(self):
        print(‘输入取款金额‘)
    def __print_bill(self):
        print(‘打印账单‘)
    def __take_money(self):
        print(‘取款‘)

    def withdraw(self):
        self.__card()
        self.__auth()
        self.__input()
        self.__print_bill()
        self.__take_money()

a=ATM()

a.withdraw()

  

3.1.7 封装的应用

标签:info   字符   return   str   mon   ini   用户认证   字符串类   pre   

原文地址:https://www.cnblogs.com/beallaliu/p/9113933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!