未知
mutexinit的Python项目详细描述
这个包提供了一个metaclass和一个decorator来为python类启用互斥构造函数。
您只需使用MutexInitMeta元类创建一个类,并将每个互斥构造函数声明为 实例方法,并用@subinitdecorator装饰它。
下面是一个简单的示例:
from mutexinit import MutexInitMeta, subinit class MyClass(object): __metaclass__ = MutexInitMeta @subinit def foo(self, bar, baz): print('Running "foo" constructor') @subinit def bar(self, foo, baz): print('Running "bar" constructor')
这一切都是为了使类具有互斥的构造函数定义类之后,继续,并初始化它:
>>> my_instance1 = MyClass(bar=1, baz=2) Running "foo" constructor >>> my_instance2 = MyClass(foo=9, baz=8) Running "bar" constructor >>> my_instance2 = MyClass(foo=None, baz=8) AttributeError: Mutex init arguments cannot be None