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

标签 python class variables

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

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/

相关文章:

python - 具有局部变量的全局方法线程安全

python - 将节点添加到第一个文档树并保存到文件

python - 名称错误 : global name 'END' is not defined

python - 最大化正则表达式中的子串匹配

r - 使用 R 对大数据集进行变量/降维

python - 使用局部变量从一个函数到另一个函数

C - 将结构变量从一个函数传递到另一个函数

java - 如何从另一个类(class)运行一个类(class)

php - 来自类 php 的 Ajax 调用方法

c++ - 如何编写两个初始化操作(一个作为默认初始化,另一个作为用户输入)?两者都是 C++ 中类的构造函数