小编joh*_*son的帖子

在python数据类__init__方法中强制进行类型转换

我有以下非常简单的数据类:

import dataclasses

@dataclasses.dataclass
class Test:
    value: int
Run Code Online (Sandbox Code Playgroud)

我创建了该类的实例,但我使用了一个字符串而不是整数:

>>> test = Test('1')
>>> type(test.value)
<class 'str'>
Run Code Online (Sandbox Code Playgroud)

我真正想要的是强制转换为我在类定义中定义的数据类型:

>>> test = Test('1')
>>> type(test.value)
<class 'int'>
Run Code Online (Sandbox Code Playgroud)

我必须__init__手动编写该方法还是有一种简单的方法来实现此目的?

python python-dataclasses

7
推荐指数
4
解决办法
867
查看次数

Python2 math.fsum不准确吗?

我正在使用python2数学模块来计算fsum的总和.据我所知,0.1通常不能存储二进制.据我所知math.fsum应该以某种方式解决这个问题.

import math
math.fsum([0.0, 0.1])
#0.1
math.fsum([0.1, 0.1])
#0.2
math.fsum([0.2, 0.1])
#0.30000000000000004
math.fsum([0.3, 0.1])
#0.4
math.fsum([0.4, 0.1])
#0.5
Run Code Online (Sandbox Code Playgroud)

所以math.fsum([0.2,0.1])== 0.3将为False.这应该是这样的吗?难道我做错了什么?

我怎样才能得到0.2 + 0.1 == 0.3为真?

python math sum

4
推荐指数
1
解决办法
507
查看次数

标签 统计

python ×2

math ×1

python-dataclasses ×1

sum ×1