簡體   English   中英

在單獨的函數中使用一個函數的自變量

[英]Using an argument from one Function in a separate function

我有一個功能:

def create_discs(noDiscs):

調用時會創建指定數量的光盤,例如:

create_discs(5)

將創建5張光盤。

然后,我想在單獨的函數中使用輸入到create_discs函數中的整數:

def hanoi(disc_int):

換句話說,我希望disc_int等於5(或輸入任何數字)

誰能幫我?

如果您希望兩個函數共享狀態,則應將它們定義為類的方法。

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()

如果您要將5傳遞給create_discs,可以執行以下操作:

num = 5

create_discs(num)
hanoi(num)

您可以關閉:

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM