zoukankan      html  css  js  c++  java
  • 面向对象的封装2

    class Foo:
        def __func(self): #私有属性在定义阶段就发生变化,_Foo__func
            print('Foo')
    class  Bar(Foo):
        def __func(self): #因为在定义阶段就发生了变化,所以子类不能继承父类的私有属性
            print('Bar')
    
    
    b = Bar()
    b._Foo__func()
    b._Bar__func()
    
    class A:
        def foo(self):
            print('A.foo')
            self.__bar() #调用私有方法,找不到,除了自己类以外的方法
    
        def __bar(self):
            print('A.bar')
    class B(A):
        def __bar(self):
            print('B.bar')
    
    b = B()
    b.foo()
    
    
    class Teacher():
        def __init__(self,username,password):
            if not isinstance(password,str):
                raise Exception('密码只能是字符串')
            self.__uname = username
            self.__pwd = password
        @property
        def name(self):
            return self.__uname
        @name.setter
        def name(self,val):
            print(type(val))
            if not isinstance(val,str):
                raise TypeError('must be str')
            self.__uname=val
        @name.deleter
        def name(self):
            import re
            if re.findall('(?i)sb',self.__uname): #(?i) 不区分大小写
                raise PermissionError('SB not Deleting permissions')
            else:
                del self.__uname
    
    egon = Teacher('egon','123')
    egon.name = ('egonSB')
    print(egon.name)
    
    del egon.name
  • 相关阅读:
    全选、全不选、反选
    IE Tester 怎样使用firebug 调试工具?
    策略模式
    模板方法模式
    迭代器模式——android中使用
    android 实现圆形波纹动画
    android 窗口的使用
    AlertDialog 基本使用
    国外android 网站
    ViewDragHelper 任意拖动
  • 原文地址:https://www.cnblogs.com/ldq1996/p/8448647.html
Copyright © 2011-2022 走看看