AttributeError:' NoneType'对象没有属性' current'

时间:2015-09-03 11:35:46

标签: android python kivy buildozer

class LoginScreen(Screen):
    def __init__(self,**kwargs):
        super(LoginScreen, self).__init__(**kwargs)
        print self,self.parent.current

class AppScreenManager(ScreenManager):
    pass

#Base Class
class AppBaseClass(App):
    def build(self):
        icon='app_icon'
        return Builder.load_file('appbase.kv')


________________________________________________________________________________________________

AppScreenManager:
    transition: FadeTransition()
    LoginScreen:

错误:AttributeError:' NoneType'对象没有属性' current'。请帮忙。

1 个答案:

答案 0 :(得分:2)

你打电话的那一刻:

print self,self.parent.current

LoginScreen尚未实例化,因此您正在调用不存在的对象。

解决方法是将呼叫延迟1帧,这可以使用Clock类完成:

 Clock.schedule_once(self._myprintfunction, 1/60)

和后者在您的代码中,但在同一个类中:

    def _myprintfunction(self, dt):
        print '-'*25
        print self
        print self.parent
        # print self.parent.curet <- this will throw you an error 
        print '-'*25

希望它有所帮助。