首页  >  文章  >  后端开发  >  实例变量与类变量:Python 中应该在哪里声明变量?

实例变量与类变量:Python 中应该在哪里声明变量?

Barbara Streisand
Barbara Streisand原创
2024-10-26 13:33:02179浏览

  Instance vs. Class Variables: Where Should You Declare Variables in Python?

内部和外部的变量 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn