如何从一个类访问变量到另一个类。让我们说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])
答案 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)
由于var1
和var2
是实例变量,您可以将类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