在源代码Stable Baselines3的common/preprocessing.py
中,在第158行,有:return (int(len(observation_space.nvec)),)
.
据我所知,在Python中,len
只能返回int,无论这是否为真,在这里都会返回int(可能在两个方面都是错误的).如果是这样的话,对int的强制转换对我来说就没有意义了.
我是不是漏掉了什么?
在源代码Stable Baselines3的common/preprocessing.py
中,在第158行,有:return (int(len(observation_space.nvec)),)
.
据我所知,在Python中,len
只能返回int,无论这是否为真,在这里都会返回int(可能在两个方面都是错误的).如果是这样的话,对int的强制转换对我来说就没有意义了.
我是不是漏掉了什么?
没有必要拨打int
的电话.
len
总是返回int
.如果类的__len__
实现返回int
以外的值,则Python会try 将其转换为int
.如果不能做到这一点,将提高TypeError
.不存在len
可以返回int
以外的值的情况.
你可以try 自己违反这一点:
class Foo:
def __len__(self):
return "bad"
>>> len(Foo())
Traceback (most recent call last)
...
TypeError: 'str' object cannot be interpreted as an integer