在类中创建变量并在__init__
中为其赋值,然后直接在__init__
中创建变量之间有何区别?
例如:
示例1:
# I create the var color outside __init__ and assigns a value to it inside __init__
class Car:
color = ""
def __init__(self):
self.color = "green"
示例2:
# I directly create the variable inside __init__ and not outside __init__ and just assign a value in __init__
class Car:
def __init__(self, color):
self.color = color
有什么不同吗?
答案 0 :(得分:1)
第一个示例具有两个不同的color
属性:color = ""
创建一个 class 属性,如果实例没有自己的实例,将使用show值。 self.color = "green"
显式创建一个值为"green"
的 instance 属性。
在第二个示例中,没有类属性,并且您使用__init__
的参数而不是硬编码值来定义实例属性。
答案 1 :(得分:0)
__init__
是用于在创建对象时初始化对象的构造函数。
-> __init__(self): self.color='green'
这将创建一个类变量,并且在创建对象时您将无法传递新值。
->__init__(self,color): self.color=color
另一方面,上面的代码将允许您将color属性分配给对象。