如何修复AttributeError:“地图”对象没有属性“ bit_length”

时间:2019-04-27 11:13:12

标签: python-3.x

我的代码中有一些错误:

if type(random) is BuiltinMethod or type(getrandbits) is Method:
                k = n.bit_length()  # don't use (n-1) here because n can be 1
                r = getrandbits(k)          # 0 <= r < 2**k
                while r >= n:
                    r = getrandbits(k)
                return r
  

AttributeError:“地图”对象没有属性“ bit_length”

1 个答案:

答案 0 :(得分:0)

生成map对象很容易,例如:

>>> map(float, range(3))
<map object at 0x10287cf98>
>>> 
>>> list(map(float, range(3)))
[0.0, 1.0, 2.0]

很明显,您期望n应该是int,例如:

>>> n = 63
>>> n.bit_length()
6
>>> n += 1
>>> n.bit_length()
7

您选择不向我们显示所有相关代码。 但是在这行代码的某个地方,您的代码为map分配了一个n对象, 而不是整数。 产生 AttributeError:'map'对象没有属性'bit_length'诊断。