重命名类

(类来自 pyomo.common.deprecation)

class pyomo.common.deprecation.RenamedClass(name, bases, classdict, *args, **kwargs)[source]

基础类:type

元类为重命名的类提供弃用路径

这个元类提供了一种机制,用于重命名旧类,同时仍然保留isinstance / issubclass关系。

示例

>>> from pyomo.common.deprecation import RenamedClass
>>> class NewClass(object):
...     pass
>>> class OldClass(metaclass=RenamedClass):
...     __renamed__new_class__ = NewClass
...     __renamed__version__ = '6.0'

从旧类派生会产生警告:

>>> class DerivedOldClass(OldClass):
...     pass
WARNING: DEPRECATED: Declaring class 'DerivedOldClass' derived from
    'OldClass'. The class 'OldClass' has been renamed to 'NewClass'.
    (deprecated in 6.0) ...

就像实例化旧类一样:

>>> old = OldClass()
WARNING: DEPRECATED: Instantiating class 'OldClass'.  The class
    'OldClass' has been renamed to 'NewClass'.  (deprecated in 6.0) ...

最后,isinstanceissubclass 仍然有效,例如:

>>> isinstance(old, NewClass)
True
>>> class NewSubclass(NewClass):
...     pass
>>> new = NewSubclass()
>>> isinstance(new, OldClass)
WARNING: DEPRECATED: Checking type relative to 'OldClass'.  The class
    'OldClass' has been renamed to 'NewClass'.  (deprecated in 6.0) ...
True
__init__(*args, **kwargs)

方法

__init__(*args, **kwargs)

mro()

返回一个类型的方法解析顺序。

成员文档

mro()

返回一个类型的方法解析顺序。