尝试在类中进行访问另一个类中的类方法。下面的代码可能会解释我的目标。
class Access(object):
def __init__(self):
pass
def select(self, value):
Store.keep(value)
class Store(object):
def __init__(self):
self.store_value = 0
def keep(self, value):
self.store_value = value
x = Access()
y = Store()
x.select(10)
y.store_value
##Want the output of 10
答案 0 :(得分:0)
如果没有Access对Store对象的引用,我就没有任何方法可以做你想做的事。
你最接近的事情是
class Access(object):
def __init__(self):
pass
def select(self, value):
Store.keep(value)
class Store(object):
@classmethod
def keep(cls, value):
cls.store_value = value
x = Access()
y = Store()
x.select(10)
print y.store_value #will print 10
#but
z = Store()
print z.store_value #will print 10 too
所有Store实例共享store_value
。
答案 1 :(得分:0)
您也可以将实例传递给select
并使用Store.keep(inst, value)
:
class Access(object):
def __init__(self):
pass
def select(self, inst, value):
Store.keep(inst, value)
class Store(object):
def __init__(self):
self.store_value = 0
def keep(self, value):
self.store_value = value
x = Access()
y = Store()
x.select(y, 10)
print(y.store_value)
10