在同一范围内访问另一个类中的类方法

时间:2015-10-03 09:08:44

标签: python class

尝试在类中进行访问另一个类中的类方法。下面的代码可能会解释我的目标。

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

2 个答案:

答案 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