所以我遇到了这个问题:我创建了一个类,并且还想创建一个允许创建实例的函数,以使其可重用。我的代码不起作用,我无法理解为什么。 亲眼看看:
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'更改为调用时输入的名称。或者任何其他更有效的避免重复相同的变量...
感谢您的帮助!
答案 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)