[英]how should i access a class variable from another class in python?
[英]How can I access a variable from another class in 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
这是HighScore类的代码:
class HighScore(Screen):
def __init__(self, **kwargs):
super(HighScore, self).__init__(**kwargs)
# Need user_objectid from LoginScreen class here!
user_id = ObjectProperty()
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('GET', '/1/classes/GameScore/user_id', '', {
"X-Parse-Application-Id": "${APPLICATION_ID}",
"X-Parse-REST-API-Key": "${REST_API_KEY}"
})
result = json.loads(connection.getresponse().read())
print result['score']
首先,在类__init__
函数中两次定义属性。 这不会产生属性行为, 必须在类级别定义它们才能将其用作属性(而不仅仅是普通属性)。
对于您的主要问题,答案很简单,就是您的HighScore实例需要对LoginScreen实例的引用-如果引用了该变量,例如在变量lgs
,则可以直接访问lgs.user_objectid
以获取所需的值。
最好的方法完全取决于程序的结构,以及在何处创建和使用这些类及其方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.