• python编程学习进度十一


    今天学习的还是关于python编程中类相关的知识,主要是类的设计以及类的主题。下面是总结:

    1、无绑定类方法对象无self必须明确提供实例对象做第一个参数,绑定实例方法对象用self+函数对,不用传递实例。

    委托是指把对象包装在代理类中。

    #trace.py
    class wrapper:
     def __init__(self,object):
      self.wrapped = object
     def __getattr__(self,attrname):
      print 'Trace:',attrname
      return getattr(self.wrapped,attrname)
    
    >>>from trace import wrapper
    >>>x = wrapper([1,2,3])
    >>>x.append(4)
    Trace:append
    >>>x.wrapped
    [1,2,3,4]

    组合是一种技术,让控制器类嵌入和引导一群对象,并自行提供接口。

    2、类的主题

    伪私有属性:将开头两个下划线的变量名前再加上_类名。仍然不是真正的私有。

    新式类从内置类型创建子类,或者直接用object作为超类。3.0以后所有类自动成为新式类。钻石继承在新式类里从括号最右开始搜索,这与经典类正相反。为了解决继承不同类同名变量冲突,可以进行强制规定,如attr = B.attr。

    __slots__用来限制类的实例能有的合法属性集。

    内容属性使用拦截的方式来提供属性,但是它本身不是成员变量。类似于改写__getattr__,使用property()进行。

    静态方法和类方法分别需要调用staticmethod和classmethod两个函数,前者调用不需要实例(实例调用时),后者把类传入类方法第一个参数。

    函数装饰器在def上一行用@标明,有点像包裹函数,@A @B @C后def f()相当于f=A(B(C(f)))。

  • 相关阅读:
    笨蛋的厄运
    模仿写了一个摸鱼应用解决原作者的问题
    retain和copy还有assign的区别
    分析与理解通知消息WM_NOTIFY
    备忘录
    数据结构C++模板实现之单向链表
    服务器(VPS合租)
    复制构造,赋值操作符,const重要性
    Windows 注册表操作简介
    窗口类封装之窗口对象消息处理的映射方法(1)
  • 原文地址:https://www.cnblogs.com/lover995/p/12296593.html
Copyright © 2020-2023  润新知