在单独的函数中使用一个函数的参数

时间:2014-05-01 13:07:02

标签: python function

我有一个功能:

def create_discs(noDiscs):

当被调用时会创建指定数量的光盘,例如:

create_discs(5)

将创建5张光盘。

然后我想在一个单独的函数中使用输入到create_discs函数中的整数:

def hanoi(disc_int):

换句话说,我希望disc_int等于5(或输入任何数字)

任何人都可以帮助我吗?

3 个答案:

答案 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在其范围内(自动,无需在globalclass!)它返回了内部函数,以便稍后调用它。

如果create_discs已经应该返回某些东西,那么你可以返回一个tuple,它返回的内容加上内部函数:

def create_discs(num):
    # ...
    return what_it_normally_returns, hanoi_closure

create_discs_result, hanoi = create_discs(5)
hanoi()