param.Integer 赋值给 python class 转换为 int
param.Integer assignment to python class transformed to int
import param
class BaseClass(param.Parameterized):
num_int = param.Integer(50000, bounds=(-200, 100000))
代码块returnsclassint
>>> 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__
方法,这使它成为一个描述符。这意味着当一个实例作为 class 或实例属性访问时,您不会获得 Integer
实例本身;相反,您会得到其 __get__
方法的结果。
也就是说,BaseClass.num_int
的计算结果为 BaseClass.__dict__['num_int'].__get__(None, BaseClass)
,其中 returns 一些 int
值(可能是默认值?)。
import param
class BaseClass(param.Parameterized):
num_int = param.Integer(50000, bounds=(-200, 100000))
代码块returnsclassint
>>> 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__
方法,这使它成为一个描述符。这意味着当一个实例作为 class 或实例属性访问时,您不会获得 Integer
实例本身;相反,您会得到其 __get__
方法的结果。
也就是说,BaseClass.num_int
的计算结果为 BaseClass.__dict__['num_int'].__get__(None, BaseClass)
,其中 returns 一些 int
值(可能是默认值?)。