如何在python中的另一个类中使用一个类变量

时间:2017-11-27 06:30:56

标签: python class

如何从一个类访问变量到另一个类。让我们说A类从命令行给出了参数。我想访问类A的变量,通过命令行给另一个类说B.类怎么访问?

class A():
    def __init__(self,var1,var2):
        pass
class B():
    def __call__(self):
        #(here I want to use var1 and var2 from class A)

A(sys.argv[1],sys.argv[2])

3 个答案:

答案 0 :(得分:2)

无论

import sys
class A():
    def __init__(self,var1,var2):
        self.var1 = var1
        self.var2 = var2
        pass
class B():
    def __call__(self, a):
        print(a.var1, a.var2)
        #(here I want to use var1 and var2 from class A)

a = A(sys.argv[1],sys.argv[2])
b = B()
b(a)

import sys
class A():
    def __init__(self,var1,var2):
        self.var1 = var1
        self.var2 = var2
        pass
class B():
    def __init__(self, a):
        self.a = a
    def __call__(self):
        print(self.a.var1, self.a.var2)
        #(here I want to use var1 and var2 from class A)

a = A(sys.argv[1],sys.argv[2])
b = B(a)
b()

根据用例

使用这两者中的一个

答案 1 :(得分:0)

由于var1var2是实例变量,您可以将类A的实例发送到类B

import sys

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

class B():        
    def __call__(self, A):
        self.var1 = A.var1
        self.var2 = A.var2

obj_one = A(sys.argv[1], sys.argv[2])
obj_two = B()

obj_two(obj_one)

print(obj_two.var1)
print(obj_two.var2)

答案 2 :(得分:0)

首先通过更改其定义来为class A创建实例变量

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

然后将class A的实例传递给__call__的{​​{1}}方法 如下

class B

现在,您可以在您创建的实例内的任何位置使用class B(): def __init__(self, class_A_object): self.var1 = class_A_object.var1 self.var2 = class_A_object.var2 var1 var2

class B