这是我在 Python 中的第一个程序,我正在使用一些用于登录或注册用户的 API。
这就是我的班级的样子:
class MyClass:
...
def __init__(self, apikey, gameid, securitykey, responseformat,
username=None, password=None, email=None)
self.apikey = apikey
self.gameid = gameid
self.securitykey = securitykey
self.responseformat = responseformat
if username and password:
self.userlogin(username,password)
if username and password and email:
self.userregistration(username, password, email)
''' And there are function userlogin and userregistration
i'll show just one of them '''
def userregistration(self, username, password, email):
securitypayload = self.buildurl(username, password, email)
user = requests.get('url', params = securitypayload)
if 'error' in user.text:
return user.text
else:
return 'Success!'
我用下面的代码测试了这个类:
api_test = MyClass('apikeyadfasdf', 'gameiddfdfd', 'seckey34324324', 'JSON',
'admin', 'pass1')
print(api_test)
我得到这样的输出:
<package1.package2.file_name.MyClass object at 0x7f278388b48>
但是当我把我的测试改成这样时:
api_test = MyClass('apikeyadfasdf', 'gameiddfdfd', 'seckey34324324', 'JSON',
'admin', 'pass1')
data = api_test.userregistration(username, password, email)
print(data)
它会做的事情,我会得到我的输出,但它会执行该功能两次。
我在想问题可能出在哪里,我记得在 JAVA 中,当您忘记覆盖 toString() 时,您可以获得类似的输出。现在,我已经阅读了有关 python 等价物的信息:repr和str但首先我不知道如何从方法(不是 self.apikey 等)返回数据,其次我不是 100% 确定这是正确的获取方式我的输出,而不是地址。