我遇到名称错误,尝试从类方法中打印随机数时未定义randint。
class Deck:
import random
def __init__(self,choice,card = 0):
self.choice = choice
self.card = card
def deck(self):
if self.choice == 1:
print((randint(1,5)))
我希望它打印一个1-5的随机数,我可以通过创建一个分配了随机数的类变量来获得结果,我仍然想知道为什么我不能只在方法内部生成随机数
答案 0 :(得分:1)
这是因为您没有通过randint
模块调用random
。
使用randint
的正确方法是明确地通过random
模块来完成。
import random
class Deck:
def __init__(self,choice,card = 0):
self.choice = choice
self.card = card
def deck(self):
if self.choice == 1:
print((random.randint(1,5)))
或者通过将randint
引入模块命名空间中,如
from random import randint
class Deck:
def __init__(self,choice,card = 0):
self.choice = choice
self.card = card
def deck(self):
if self.choice == 1:
print((randint(1,5)))
答案 1 :(得分:0)
在类中具有导入通常是一种不好的做法,但是使用类函数来完成它看起来像:
class Deck:
random = __import__('random')
def __init__(self,choice,card = 0):
self.choice = choice
self.card = card
def deck(self):
if self.choice == 1:
print((self.random.randint(1,5)))
x = Deck(choice = 1)
x.deck()
答案 2 :(得分:0)
您的import语句应该在类定义之外(最好在脚本顶部,但这不是必须的)
要使用randint函数,必须首先引用随机库来调用它:
import random
class Deck:
def __init__(self,choice,card = 0):
self.choice = choice
self.card = card
def deck(self):
if self.choice == 1:
print((random.randint(1,5)))