Files
python3-cookbook/cookbook/c09/p15_meta_optional_arg.py

37 lines
874 B
Python
Raw Permalink Normal View History

2015-04-26 22:34:29 +08:00
#!/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)