我可以在python中创建一个函数来创建一个类的实例吗?

时间:2016-01-11 20:27:04

标签: python function class instance

所以我遇到了这个问题:我创建了一个类,并且还想创建一个允许创建实例的函数,以使其可重用。我的代码不起作用,我无法理解为什么。 亲眼看看:

class Avatar(object):

    def __init__(self, name, money):
        self.name = name
        self.money = money


def create_avatar(name, money):
    avatar = Avatar(name, money)

以后可以致电:

create_avatar("test", 50)

这样可以做到这一点吗?它似乎非常直接和合乎逻辑但不起作用...... 如果我然后试着打电话:

avatar.name

我明白了:

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    avatar.name
NameError: name 'avatar' is not defined

有没有办法自动将变量'avatar'更改为调用时输入的名称。或者任何其他更有效的避免重复相同的变量...

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

我不知道为什么这不起作用

def create_avatar(name, money):
   return Avatar(name, money)

也许你是为了这个?

def create_avatar(name, money):
   avatar = Avatar(name, money)
   return avatar

你必须在方法之外实际返回一些东西才能使用它,否则它只是方法中的一个局部变量。

虽然如果你要打电话给这个方法,但是当你可以做的时候它没有意义

avatar = Avatar("test", 2)

而不是

avatar = create_avatar("test", 2)