如何从python中的另一个类访问变量?

2024-04-20 04:14:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从LoginScreen类访问user_objectid,并使用它在HighScore类中使用Parse SDK访问该用户在游戏中的高分。但是,我不知道如何获取这些信息。以下是我的代码:

    class LoginScreen(Screen):

       def __init__(self, **kwargs):
          super(LoginScreen, self).__init__(**kwargs)
          self.gametime = BooleanProperty(False)

       _username = ObjectProperty(None)
       _password = ObjectProperty(None)
       user_objectid = ObjectProperty(None)

       def loginUser(self):

          if self._username.text != '' and self._password.text != '':
             try:
                connection = httplib.HTTPSConnection('api.parse.com', 443)
                params = urllib.urlencode({"username":self._username.text,            "password":self._password.text})
                connection.connect()
                connection.request('GET', '/1/login?%s' % params, '', {
                   "X-Parse-Application-Id": "${APPLICATION_ID}",
                   "X-Parse-REST-API-Key": "${REST_API_KEY}",
                   "Content-Type": "application/json"
                })
                result = json.loads(connection.getresponse().read())
                # Confirm valid user
                if result['objectId'] != '':
                   self.user_objectid = result['objectId']
                   return True

这是高分类的代码:

^{pr2}$

Tags: 代码textselfnoneparseinitdefusername
1条回答
网友
1楼 · 发布于 2024-04-20 04:14:21

首先,在类__init__函数中定义两次属性。这将而不是给出属性行为,它们必须在类级别被定义为属性(而不仅仅是普通属性)。在

对于您的主要问题,答案很简单,您的HighScore实例需要对LoginScreen实例的引用-如果它有引用,比如在变量lgs中,您可以简单地访问{}来获得所需的值。在

最好的方法完全取决于程序的结构,以及创建和使用这些类及其方法的位置。在

相关问题 更多 >