清除实例之间的所有类变量
这可能是个傻问题,但在不同的实例之间,清空类变量的最好方法是什么呢?
我知道我可以在构造函数里一个一个地重置每个变量;但是有没有办法一次性处理这些变量呢?
或者我是不是在做什么完全错误的事情,需要换个方法?谢谢大家的帮助……
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的时候,变量都是新的。
谢谢。
4 个回答
0
这段代码不会改变除了 u
以外的任何 User
实例的 name
或 email
属性。
3
如果你想在每次创建新对象的时候重置一些值,那你应该使用实例变量,而不是类变量。
如果你使用类变量,并且同时想创建多个用户对象,那么一个对象的改变会覆盖另一个对象的改变。
3
你可以像这样把参数传递给构造函数吗?
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')
在你发的代码里其实没有什么需要“重置”的。创建一个用户的时候,他们甚至还没有名字或邮箱这些属性,直到你稍后设置它们。另一种方法是直接把这些属性初始化为一些默认值,就像下面这样,但我上面发的代码更好,因为这样就不会有未初始化的用户对象。
def __init__(self):
self.user = None
self.email = None