内部和外部的变量 init
在 Python 类中声明变量的位置会显着影响其行为。考虑以下两个类:
<code class="python">class WithClass(): def __init__(self): self.value = "Bob" def my_func(self): print(self.value) class WithoutClass(): value = "Bob" def my_func(self): print(self.value)</code>
类变量与实例变量
这两个类之间的主要区别在于声明变量值的位置。在 WithClass 中,它在 __init__ 方法中声明,使其成为实例变量。这意味着 WithClass 的每个实例都将拥有自己独立的 value 属性副本。
另一方面,在 WithoutClass 中,value 属性在 __init__ 方法之外声明,使其成为类变量。因此,WithClass 的所有实例将共享 value 属性的同一个实例。
初始化方法
WithClass 中的 __init__ 方法充当每个属性的初始化器对象实例。创建实例时,将调用 __init__ 方法,并向 self.value 属性分配值“Bob”。然后,该值将存储在实例中,并可供对象内的其他方法使用。
后果
在何处声明变量的决定可能会对您的代码产生影响。程序的行为。如果您需要类的每个实例对于特定属性都有其自己的唯一值,则应在 __init__ 方法中将其声明为实例变量。或者,如果一个类的所有实例都应共享相同的属性值,则可以在 __init__ 方法之外将其声明为类变量。
因此,关键区别在于您是否希望该变量是在类的所有实例之间共享(类变量),或者对于每个单独的实例都是唯一的(实例变量)。
以上是实例变量与类变量:Python 中应该在哪里声明变量?的详细内容。更多信息请关注PHP中文网其他相关文章!