我正在编写一个利用多个类的程序。我有一个类专门用于确定一组变量的值。然后我希望能够通过其他类访问这些变量的值。我的代码如下:
class ClassA(object):
def __init__(self):
self.var1 = 1
self.var2 = 2
def methodA(self):
self.var1 = self.var1 + self.var2
return self.var1
class ClassB(ClassA):
def __init__(self):
self.var1 = ?
self.var2 = ?
object1 = ClassA()
sum = object1.methodA()
print sum
我使用classA初始化2个变量(var1和var2)。然后我使用methodA添加它们,将结果保存为var1(我认为这将使var1=3和var2=2)。我想知道的是,如何让ClassB从ClassA获取var1和var2的值?
var1
和var2
是instance variables。这意味着您必须将ClassA
的实例发送到ClassB
,以便类B访问它,即:另一方面-如果要使用class variables,则可以访问var1和var2,而无需将object1作为参数发送给ClassB。
但是,请注意,类变量在其类的所有实例之间共享。
你能解释一下你为什么要这样做吗?
你在玩弄那些不会从一个类迁移到另一个类的实例变量/属性(它们甚至不会绑定到
ClassA
,而是绑定到你在编写ClassA()
时创建的ClassA
的特定实例)。如果要在一个类中显示另一个类中的更改,可以使用类变量:在这种情况下,
ClassB
将从继承中获取ClassA
上的值。然后,您可以通过ClassA.var1
、ClassB.var1
甚至从实例ClassA().var1
访问类变量(前提是您没有添加实例方法var1
,该方法将在属性查找中的类变量之前解析)。在我知道这是否是一个我真正推荐的行动方案之前,我必须对您的特定用例有一点了解。。。
相关问题 更多 >
编程相关推荐