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()
对象。
也就是说,我不知道您的代码实际上要做什么,您是否希望key
和nicks
是单独的ListProperties?
你能进一步
扩展一下你想做的事情吗?
我认为您实际需要做的就是:
class MainScreen(FloatLayout):
data = ObjectProperty(Data())
def get_key_nicks(self):
return data.get_key_nicks()