我试图调用一个包含在另一个函数中的函数。我知道每个内部函数都是单独工作的,因为我在将它们组合到rollDice()
之前对它们进行了测试。你知道吗
当我尝试运行代码时,它总是告诉我基本上每个变量(d20
,d10
,等等)都是未定义的,即使我运行了rollDice()
函数。你知道吗
如何让我的内部函数(d6(roll6)
)输出它在拥有rollDice(roll)
函数之后被赋值的值?你知道吗
def diceRoll(roll):
def d20(roll20):
import random
roll20 = random.randint(1,20)
print("The roll is ", roll20)
return roll20
def d12(roll12):
import random
roll12 = random.randint(1,12)
print("The roll is ", roll12)
return roll12
def d6(roll6):
import random
roll6 = random.randint(1,6)
print("The roll is ", roll6)
return roll6
####### example of other part of code
def generateDungeon():
diceRoll(roll)
numberOfRooms = roll6
print("The roll was: ", roll6)
if numberOfRooms > 1:
print("There are ", numberOfRooms, "rooms in this dungeon.")
else:
print("There is only 1 room in this dungeon.")
return numberOfRooms
通过执行外部函数,您不会执行任何内部函数。不管怎样,他们的变量超出了范围。你知道吗
如果您真的想在函数中使用函数(顺便说一句,这在本例中是不必要的),您可以通过使用闭包使代码更加简洁。此外,只需在顶部导入一次程序包就更容易了:
然后,要使用它,调用
diceRoll
的返回值:请注意,整个过程可以这样做:
打电话来说:
相关问题 更多 >
编程相关推荐