Python类和模块

时间:2014-04-11 16:41:37

标签: python

我正在自学Python,并遇到了包含课程和模块的障碍。 下面的代码是你可能永远不会写的东西,但我想了解我的错误。

import random

class GetRandom:
    def __init__(self):
        self.data = ""

    def ranNumber():
        return random.random()

b = GetRandom()
bnum = b.ranNumber
print bnum

我得到的输出是:

<bound method GetRandom.ranNumber of <__main__.GetRandom instance at 0x7fe87818df38>>

我曾预料到0到1之间的随机数。我做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

这里有两个问题:

  1. 您忘记实际调用GetRandom.ranNumber。在其后添加()来执行此操作:

    bnum = b.ranNumber()
    
  2. 您需要使GetRandom.ranNumber接受在调用方法时隐式传递的self参数:

    def ranNumber(self):
        return random.random()
    
  3. 解决这些问题后,代码按预期工作:

    >>> import random
    >>> class GetRandom:
    ...     def __init__(self):
    ...         self.data = ""
    ...     def ranNumber(self):
    ...         return random.random()
    ...
    >>> b = GetRandom()
    >>> bnum = b.ranNumber()
    >>> print bnum
    0.819458844177
    >>>