2014-10-04 110 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

相关问题