如何在变量函数中存储返回值(kivy属性)


class Data(object):

def get_key_nicks(self):
    '''
    It returns key and nicks object
    '''
    file = open(self.key_address, 'rb')
    key = pickle.load(file)
    file.close()
    file = open(self.nicks_address, 'rb')
    nicks = pickle.load(file)
    file.close()
    return (key, nicks)

以上是我想在kivy中使用的数据api和函数

class MainScreen(FloatLayout):
data = ObjectProperty(Data())
key, nicks = ListProperty(data.get_key_nicks())

它给出如下错误:AttributeError:"kivy.properties.ObjectProperty"对象没有属性"get_key_nicks">

属性是描述符,这基本上意味着它们在从类的实例访问时看起来像普通属性,但在类级别,它们本身就是对象。这就是问题的本质 - 在类级别data是一个 ObjectProperty,即使您从类的实例访问它,您也会获得作为默认值传入的Data()对象。

也就是说,我不知道您的代码实际上要做什么,您是否希望keynicks是单独的ListProperties?

你能进一步

扩展一下你想做的事情吗?

我认为您实际需要做的就是:

class MainScreen(FloatLayout):
    data = ObjectProperty(Data())
    def get_key_nicks(self):
        return data.get_key_nicks()

最新更新