参数.python类的整数赋值已转换为int


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.Integerparam.Number继承了一个__get__方法,使其成为描述符。这意味着,当一个实例作为类或实例属性访问时,不会得到Integer实例本身;相反,您将获得其__get__方法的结果。

也就是说,BaseClass.num_int的求值结果为BaseClass.__dict__['num_int'].__get__(None, BaseClass),它返回一些int值(可能是默认值?(。

最新更新