我想创建一个自定义的数字类型。基本上是一个float,它的值在赋值之后由我的自定义类处理。 我有seen examples解释了如何创建类并将其作为公共类型(int/float/…)读取。 然而,关于如何使值赋值像浮点变量那样透明,还没有一个例子。你知道吗
到目前为止,我看到的是:
a = MyCustomFloat( 20. )
print(a) # prints "20"
我要找的是:
a = MyCustomFloat()
a = 20. # assign new value ; "a" is still an instance of MyCustomFloat
print(a) # prints "20"
这有可能吗?你知道吗
如果是,怎么做?你知道吗
不可能在变量级别重写此行为,但如果您愿意将
a
定义为类的属性,则可以实现using descriptors。你知道吗演示:
在变量级别,惟一的选择是使用mypy进行一些静态检查(正如Chris所提到的)。这不会阻止在运行时进行此类分配,但可以在部署代码之前运行静态代码分析器时指出此类分配。你知道吗
由于Python是一种动态语言,您可以为以后的语言分配任何需要的内容,因此预先声明其类型可能对您没有任何好处,因为您可以执行以下操作:
也就是说,如果你做了
它可能会返回默认值(float或float64)。如果您想要静态类型(一旦您声明
a
为MyType
类型,它将保持这种方式),我建议使用mypy希望有帮助
相关问题 更多 >
编程相关推荐