Python类和模块

2024-04-16 21:45:45 发布

您现在位置: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之间的随机数。我做错什么了?你知道吗

谢谢


Tags: 模块代码importselfdatainitdef错误
1条回答
网友
1楼 · 发布于 2024-04-16 21:45:45

这里有两个问题:

  1. 你忘了真正调用GetRandom.ranNumber。在其后面添加()以执行此操作:

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

    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
>>>

相关问题 更多 >