我正在自学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之间的随机数。我做错了什么?
由于
答案 0 :(得分:2)
这里有两个问题:
您忘记实际调用GetRandom.ranNumber
。在其后添加()
来执行此操作:
bnum = b.ranNumber()
您需要使GetRandom.ranNumber
接受在调用方法时隐式传递的self
参数:
def ranNumber(self):
return random.random()
解决这些问题后,代码按预期工作:
>>> import random
>>> class GetRandom:
... def __init__(self):
... self.data = ""
... def ranNumber(self):
... return random.random()
...
>>> b = GetRandom()
>>> bnum = b.ranNumber()
>>> print bnum
0.819458844177
>>>