【问题标题】:python: 'rand' is not defined, using random in a classpython:'rand'未定义,在类中使用随机
【发布时间】:2014-12-05 10:40:08
【问题描述】:

我在使用 random 模块时遇到问题,因为我在一个类中使用 randint,它似乎无法访问 random 模块。应该如何处理?

from random import random

class Pursuer():
    X_tally = 0
    Y_tally = 0

    def __init__(self):     


    def roll_pursue_type(self):
        self.pursue_dice = rand.randint(1,100)
        print(self.pursue_dice)

回溯:第 12 行,在 roll_pursue_type 中 self.pursue_dice = rand.randint(1,100) NameError: name 'rand' 没有定义

【问题讨论】:

  • from random import randint self.pursue_dice = randint(1,100) 没有 rand 这样的东西
  • 使用 import random as rand

标签: python class random module


【解决方案1】:

模块名为random,而不是rand,但您没有正确导入:

# Import the *module*, not the function
import random

# Use the correct name in your method
self.pursue_dice = random.randint(1,100)

语句from random import random 仅导入对random.random() function 的引用,而不是模块本身。您正在尝试在该模块上使用 不同的 函数,因此更容易导入整个模块对象。

也可以以其他名称导入模块:

# Still importing the *module*, not the function, but renaming it
import random as rand

# using the new name in your method
self.pursue_dice = rand.randint(1,100)

【讨论】:

    【解决方案2】:

    你导入了random,而不是rand(另外,你只导入了随机模块中的随机函数)

    所以要么你使用import random然后random.randint(),或者你可以在导入时随机重命名:

    import random as rand
    

    【讨论】:

      【解决方案3】:

      将随机导入为 rand

      self.pursue_dice = rand.randint(1,100)

      只使用 python 作为运算符 random as rand

      【讨论】:

        【解决方案4】:

        从 numpy 尝试 rand:

        from numpy.random import rand
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-20
          • 1970-01-01
          相关资源
          最近更新 更多