繁体   English   中英

Python类和模块

[英]Python classes and modules

我正在自学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. 您忘记了实际调用GetRandom.ranNumber 在其后添加()以执行此操作:

     bnum = b.ranNumber() 
  2. 您需要使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
>>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM