import param
class BaseClass(param.Parameterized):
num_int = param.Integer(50000, bounds=(-200, 100000))
代码块返回类int
>>> type(BaseClass.num_int)
'<class 'int'>'
而不是
>>> num_int = param.Integer(50000, bounds=(-200, 100000))
>>> type(num_int)
'<class 'param.Integer'>'
这是故意的行为还是我遗漏了什么?
param.Integer
从param.Number
继承了一个__get__
方法,使其成为描述符。这意味着,当一个实例作为类或实例属性访问时,不会得到Integer
实例本身;相反,您将获得其__get__
方法的结果。
也就是说,BaseClass.num_int
的求值结果为BaseClass.__dict__['num_int'].__get__(None, BaseClass)
,它返回一些int
值(可能是默认值?(。