面向对象的解释

面向对象
基础:三大特性

1.继承

2.抽象

python 抽象示例:

  

import abc

from abc import *

classSClass(metaclass = abc.ABCMeta):

       @abstractmethod

       def my_print(self):

              pass

classCClass(SClass):

       pass

cc = CClass() 

3.封装


进阶:

特殊方法:

__enter__
__exit__

上面这两个特殊方法是with方法进去后和出来后执行的函数.


高级:metaclass
1. 创建类有2中方式
class Foo(object): pass

type('Foo',(object,),{})

2. 如果想要一个类由其他type创建,可以通过metaclass进行指定

class Mytype(type):

def __call__(self....):
pass


# 1. 执行Mytype.__init__
class Foo(metaclass=Mytype):

def __init__():
pass

def __new__(...):
return 对象


# 2. 执行Mytype.__call__
# 3. 执行Foo类的__new__
# 4. 执行Foo类的__init__
obj = Foo()

原文地址:https://www.cnblogs.com/ahliucong/p/10592739.html