面向对象编程总结

Posted jiaxiaoxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象编程总结相关的知识,希望对你有一定的参考价值。

字段:

  普通字段:__init__声明的字段,

  静态字段:类中绑定的字段。由于实例属性比类属性高,所以类属性和实例属性不要重名

  普通字段和静态字段都可以删除和修改。

装饰器:

  @property: 以调用属性的方式调用方法,另外他还有setter和deleter方法。setter和deleter可以重新修改或删除带私有修饰符的字段

  @staticmethod: 静态方法,不能调用类中的静态字段和类中的方法。

  @classmethod: 类方法,可以调用类中的静态字段, 类中方法不能调用。

hasattr,getattr,setattr:

  你可以利用hasattr检查类中的方法(对于特殊方法,除了__len__,__call__需要声明才能检查,其他的特殊方法都可以),静态字段和普通字段。

特殊变量:

  __doc__属性: 模块本身是一个对象,而每个对象都会有一个__doc__属性。该属性用于描述该对象的作用。(相当于注释)

  __weakref__:对一个对象的弱引用。相对于通常的引用来说,如果一个对象有一个常规的引用,它是不会被垃圾收集器销毁的,但是如果一个对象只剩下一个弱引                               用,那么它可能被垃圾收集器收回。

  __dict__: 对于类来说,__dict__会将其所有所有的静态字段、普通方法、声明的特殊方法(以及__doc__,__weakref__)、类方法、静态方法、属性方法返回.

             对于实例来说,只返回普通字段。

   __name__: 当脚本在当前文件运行时,__name__ = __main__, 当被其他脚本文件import引入时被调用执行,__name__ = 被调用的脚本文件名。

  __len__:  len(obj)时调用obj实例中的__len__函数,具体返回什么由自己定义(允许我们自己定制,但一般返回长度)。

  __str__和__repr__: 如果把实例变为str,就要用到这两个,(请记住,类虽然有这个方法,但是没有返回值),__str__面向用户,__repr__面向程序员

  __slot__:传入一个元组,限制实例的属性只能是slot传入的元祖中的(类属性不受限制,而 且动态绑定了类属性之后,实例属性也可以用),而且,动态绑定时,                         同一属性在类属性和实例属性中只能出现一次。对方法也是一样。

  __ getitem__: 当传入切片是会调用__getitem__,当然函数要我们自己写

  __setitem__:当传入切片并且赋值时,调用setitem方法,函数也要我们自己写

  __delitem__:

  对比__module__, __class__, __name__:
    对于实例或类而言,__Module__变量返回的是模块名(也就是文件的名字)。在本文件中返回__main__,其他文件中运行时返回文件名,如lib.test.

    对于类而言,__class__返回<class ‘‘type">。对于实例对象来说,则返回<class ‘__main__.Foo‘>或者<class ‘test.lib.Foo‘>

    只有类才有__name__变量,返回类名,即Foo。 

技术分享图片技术分享图片

 

 

  


以上是关于面向对象编程总结的主要内容,如果未能解决你的问题,请参考以下文章

面向对象总结

面向对象编程思想以及强弱引用总结

面向对象编程和面向过程编程的区别总结

面向对象总结

面向对象总结

python异常处理和面向对象编程总结