available_if#

sklearn.utils.metaestimators.available_if(check)[source]#

一个属性,仅当 `check` 返回真值时才可用。

参数:
check可调用对象

当传入带有装饰方法的对象时,如果属性可用,此参数应返回一个真值;如果不可用,则返回 `False` 或抛出 `AttributeError`。

返回:
可调用对象

如果 check 返回真值,则此可调用对象使装饰方法可用;否则,装饰方法不可用。

示例

>>> from sklearn.utils.metaestimators import available_if
>>> class HelloIfEven:
...    def __init__(self, x):
...        self.x = x
...
...    def _x_is_even(self):
...        return self.x % 2 == 0
...
...    @available_if(_x_is_even)
...    def say_hello(self):
...        print("Hello")
...
>>> obj = HelloIfEven(1)
>>> hasattr(obj, "say_hello")
False
>>> obj.x = 2
>>> hasattr(obj, "say_hello")
True
>>> obj.say_hello()
Hello