37 lines
874 B
Python
37 lines
874 B
Python
#!/usr/bin/env python
|
|
# -*- encoding: utf-8 -*-
|
|
"""
|
|
Topic: 元类中的可选参数
|
|
Desc :
|
|
"""
|
|
|
|
from abc import ABCMeta, abstractmethod
|
|
|
|
class IStream(metaclass=ABCMeta):
|
|
@abstractmethod
|
|
def read(self, maxsize=None):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def write(self, data):
|
|
pass
|
|
|
|
class MyMeta(type):
|
|
# Optional
|
|
@classmethod
|
|
def __prepare__(cls, name, bases, *, debug=False, synchronize=False):
|
|
# Custom processing
|
|
pass
|
|
return super().__prepare__(name, bases)
|
|
|
|
# Required
|
|
def __new__(cls, name, bases, ns, *, debug=False, synchronize=False):
|
|
# Custom processing
|
|
pass
|
|
return super().__new__(cls, name, bases, ns)
|
|
|
|
# Required
|
|
def __init__(self, name, bases, ns, *, debug=False, synchronize=False):
|
|
# Custom processing
|
|
pass
|
|
super().__init__(name, bases, ns) |