gpt4 book ai didi

python - 我如何从一个类访问另一个类?

转载 作者:IT老高 更新时间:2023-10-28 22:21:02 26 4
gpt4 key购买 nike

我正在编写一个使用多个类的程序。我有一个类专门用于确定一组变量的值。然后我希望能够使用其他类访问这些变量的值。我的代码如下所示:

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 的值?

最佳答案

var1var2instance variables .这意味着您必须将 ClassA 的实例发送到 ClassB 以便 ClassB 访问它,即:

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, class_a):
self.var1 = class_a.var1
self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum

另一方面,如果您使用 class variables ,您可以访问 var1 和 var2 而无需将 object1 作为参数发送给 ClassB。

class ClassA(object):
var1 = 0
var2 = 0
def __init__(self):
ClassA.var1 = 1
ClassA.var2 = 2

def methodA(self):
ClassA.var1 = ClassA.var1 + ClassA.var2
return ClassA.var1



class ClassB(ClassA):
def __init__(self):
print ClassA.var1
print ClassA.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB()
print sum

但是请注意,类变量在其类的所有实例之间共享。

关于python - 我如何从一个类访问另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19993795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com