2014-10-04 99 views
0

我有一個我創建的類,在一個模塊中,我創建了一個類的實例。不幸的是,現在,無論何時模塊結束,類實例也如此(如預期的那樣)。我想保留這個類實例,並且我嘗試了一個返回(className),但它什麼也沒做。從模塊返回一個類實例?

讓這個類實例保持最佳狀態的方法是什麼?

+0

保留*其中*?你能提供一個[最小的例子](http://stackoverflow.com/help/mcve)? – jonrsharpe 2014-10-04 13:45:28

+0

當然。我有一個Person類,用def __init__設置名字和年齡的初始值。在模塊addFunc()中,我使用person1 = Person(inputName)創建了一個新的實例,其中inputName是他們輸入的名稱。這部分工作正常,但問題是,每當addFunc()結束時,我的person1消失。 – iu34 2014-10-04 13:50:11

+1

不,我的意思是一些實際的格式化代碼,在問題本身中,說明了這個問題。 – jonrsharpe 2014-10-04 14:24:54

回答

0

addFunc()似乎是一個功能,不是模塊

如果您希望person1在函數返回後繼續存在,則返回該函數的person1對象,並將其綁定到外部作用域中的變量。例如:

class Person(object): 
    def __init__(self, name): 
     self.name = name 

def addFunc(inputName): 
    person1 = Person(inputName) 
    return person1 

if __name__ == '__main__': 
    person = addFunc('iu34') 
    print person.name 

現在person1從addFunc返回,勢必person

還有其他選擇,例如將字典或列表傳遞到addFunc(),並將創建的Person對象存儲在此處 - 這取決於您的應用程序。

+0

太棒了,謝謝。這有很大幫助! – iu34 2014-10-04 14:17:15

+0

我很高興聽到這個消息。 – mhawke 2014-10-04 14:25:12

+0

在這種情況下,根本不需要'addFunc'。 – jonrsharpe 2014-10-04 14:25:37