这可能是一个愚蠢的问题,但是在实例之间清除类变量的最佳方法是什么?
我知道我可以在构造函数中单独重置每个变量;但有没有办法批量做到这一点?
或者我做错了什么需要采用不同的方法?谢谢你的帮助...
class User():
def __init__(self):
#RESET ALL CLASS VARIABLES
def commit(self):
#Commit variables to database
>>u = User()
>>u.name = 'Jason'
>>u.email = 'jason.mendez@yahoo.com.mx'
>>u.commit()
因此,每次调用User时,变量都是新鲜的。
感谢。
答案 0 :(得分:3)
如果要在每次构造新对象时重置值,则应使用实例变量,而不是类变量。
如果您使用类变量并尝试同时创建多个用户对象,则会覆盖其他用户对象。
答案 1 :(得分:2)
你能直接将参数传递给构造函数吗?
class User(object):
def __init__(self, name, email):
self.name = name
self.email = email
def commit(self):
pass
jason = User('jason', 'jason@email.com')
jack = User('jack', 'jack@yahoo.com')
您发布的代码中没有“重置”的内容。构建用户后,在您稍后设置之前,他们甚至没有名称或电子邮件属性。另一种方法是将它们初始化为一些默认值,如下所示,但我上面发布的代码更好,因此不会有任何未初始化的User对象。
def __init__(self):
self.user = None
self.email = None
答案 2 :(得分:0)
在实例上绑定属性会创建实例属性,而不是类属性。也许您正在看到上面代码中未显示的另一个问题。
答案 3 :(得分:0)
除name
外,此代码不会更改email
的任何实例的User
或u
属性。