为什么Python似乎将实例变量视为对象之间共享?

为什么Python似乎将实例变量视为对象之间共享?,第1张

为什么Python似乎将实例变量视为对象之间共享?

正如Ignacio所说,在Python中的类作用域分配的变量是类变量。基本上,在Python中,类只是语句下的

class
语句列表。一旦该语句列表执行完毕,Python就会搜集在执行过程中创建的所有变量,并从中创建一个类。如果需要实例变量,则实际上必须将其分配给实例。

另一个注意事项:听起来您可能是从Java(或类似Java)的角度来进行此 *** 作的。因此,也许您知道,因为Java要求显式声明变量,所以它需要在类范围内具有实例变量声明。

class Foo {    String bar;    public Foo() {        this.bar = "xyz";    }}

请注意,只有 声明 位于类范围内。换句话说,为该变量分配的 内存 是“模板”类的一部分,但变量的实际 不是。

Python不需要变量声明。因此,在Python翻译中,您只需删除声明。

class Foo:    # String bar;  <-- useless declaration is useless    def __init__(self):        self.bar = "xyz"

内存将在需要时分配;实际上只写出作业。就像在Java中一样,它也包含在构造函数中。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存