繁体   English   中英

如何更新 class 初始化参数值?

[英]How to update a class init argument value?

我正在尝试使用一个常量变量作为两个不同类的基础。 然后我想用一个 class 来更新变量,然后让更新影响两个类。 如何 go 关于这个? 可能吗?

如果我只是简单地更新变量,那么我可以告诉对象 A 和 B 已经创建,因此它们仍然具有旧的 var1 值,因此不起作用。

帮助表示赞赏!

class A:
    def__init__(self, var1):
         self.var1 = var1

    def function A:
         #Use self.var1 to do something

class B:
    def __init__(self, var1):
          self.var1 = var1

 def function B:
       #Update self.var1

var1 = 123
A = A(var1)
B = B(var1)

python 中的变量被实现为可重置引用,因此任何赋值都会重置引用,这不会影响任何其他变量。 这就是为什么类似: var1 = 456不会影响您的对象的原因。

一种方法是引入一些间接性:

class A:
    def __init__(self, var1):
         self.var1 = var1

    def __str__(self):
         return f'A:{self.var1}'

class B:
    def __init__(self, var1):
          self.var1 = var1

    def __str__(self):
         return f'B:{self.var1}'

var1 = [123]   # a list containing an int
a = A(var1)
b = B(var1)
print(a)
print(b)

var1[0] = 456
print(a)
print(b)

Output:

A:[123]
B:[123]
A:[456]
B:[456]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM