我有一个功能:
def create_discs(noDiscs):
当被调用时会创建指定数量的光盘,例如:
create_discs(5)
将创建5张光盘。
然后我想在一个单独的函数中使用输入到create_discs函数中的整数:
def hanoi(disc_int):
换句话说,我希望disc_int等于5(或输入任何数字)
任何人都可以帮助我吗?
答案 0 :(得分:3)
如果您希望两个函数共享这样的状态,则应将它们定义为类的方法。
class Hanoi(object):
def __init__(self, num_discs):
self.num_discs = num_discs
def create_discs(self):
# use value of self.num_discs
def hanoi(self):
# use value of self.num_discs
h = Hanoi(5)
h.create_discs()
h.hanoi()
答案 1 :(得分:0)
如果您将5
传递给create_discs,可以这样做:
num = 5
create_discs(num)
hanoi(num)
答案 2 :(得分:0)
你可以关闭:
def create_discs(num):
# create some discs
def hanoi_closure():
# now num is available within this function
# do hanoi stuff
return
return hanoi_closure
hanoi = create_discs(5)
hanoi()
在这种情况下,create_discs
定义了您自己的hanoi
函数,以便num
在其范围内(自动,无需在global
或class
!)它返回了内部函数,以便稍后调用它。
如果create_discs
已经应该返回某些东西,那么你可以返回一个tuple
,它返回的内容加上内部函数:
def create_discs(num):
# ...
return what_it_normally_returns, hanoi_closure
create_discs_result, hanoi = create_discs(5)
hanoi()