0

我有几个与python中同一个类实例的多次初始化相关的noobie问题。通过多次创建实例来更改对象属性是否正确:

obj=MyClass(a,b)
obj=MyClass(c,d)
obj=MyClass(e,f)

命令obj=MyClass(a,b)obj.__init__(a,b)平等吗?如果不是,有什么区别?

4

2 回答 2

3

在您的示例中,您正在实例化三个不同的类对象MyClass并丢弃前两个。为了能够在同一个对象上多次执行相同的初始化,我定义了一个initialize(self)方法MyClass并从__init__(self).

于 2013-06-11T11:51:04.467 回答
1

obj = MyClass(a,b)- 这将创建一个新实例

obj.__init__(a,b)__init__- 这将在当前实例上调用方法

通常,您__init__在创建实例 ( obj = MyClass(a,b)) 时调用一次隐式,稍后直接或使用某些方法修改它的字段。像:

obj = MyClass(a,b)
obj.a = 'foo'
obj.b = 2
于 2013-06-11T11:45:01.910 回答