zoukankan      html  css  js  c++  java
  • 面向对象之成员修饰 特殊成员 methclass

    面向对象之

    1.成员修饰

    2.特殊成员

    3.methclass,类之源,type创建

    一、成员修饰符
    共有成员
    私有成员, __字段名
    - 无法直接访问,只能间接访问

    class Foo:
    def __init__(self,name,age):
    self.name = name
    #self.age = age
    self.__age = age

    obj = Foo()
    obj.name
    #obj.age
    obj.__age

    二、特殊成员
    __init__ 类()自动执行
    __del__
    __call__ 对象() 类()() 自动执行
    __int__ int(对象)
    __str__ str()

    __add__
    __dict__ # 讲对象中封装的所有内容通过字典的形式返回
    __getitem__ # 切片(slice类型)或者索引                          py3中放入其中
    __setitem__
    __delitem__

    __iter__
    # 如果类中有 __iter__ 方法,对象=》可迭代对象
    # 对象.__iter__() 的返回值: 迭代器
    # for 循环,迭代器,next
    # for 循环,可迭代对象,对象.__iter__(),迭代器,next
    # 1、执行li对象的类F类中的 __iter__方法,并获取其返回值
    # 2、循环上一步中返回的对象

    三、metaclass,类的祖宗
    a. Python中一切事物都是对象
    b.
    class Foo:
    pass


    obj = Foo()
    # obj是对象,Foo类
    # Foo类也是一个对象,type的对象

    c.
    类都是type类的对象 type(..)
    “对象”都是以类的对象 类()

    四、异常处理

         1.如果错误。try:(代码块)

            except Exception(总的错误)

            IndexError    ValueError

      else和finally   的末置位

      2.主动出发异常

        raise Exception('数据库处理错误')

      3.自定义异常

        rais ALexError('404') >>>>except AlexError as e

      4.assert+条件    条件成立则不执行,反之直接异常   >>>>>>>必须通过

    五、反射(调用对象,取决于方法)

        getattr>>>>>>>>getattr(obj,input)     获取内容

        setattr>>>>>>>>设置

        delattr>>>>>>>>删除

        hasattr>>>>>>>>if hasattr(obj,input) 则   判断


    六、单例模式

  • 相关阅读:
    liunx 用户切换 su sudo
    tomcat 虚拟目录
    如何用vue封装一个防用户删除的平铺页面的水印组件
    webpack入门学习手记(一)
    理解跨域及常用解决方案
    封装一个优雅的element ui表格组件
    使用Koa.js离不开这十个中间件
    深入理解let和var的区别
    编辑器IDE之VSCode
    WTF!! Vue数组splice方法无法正常工作
  • 原文地址:https://www.cnblogs.com/xied/p/12455507.html
Copyright © 2011-2022 走看看