当我尝试调用对象方法时,我得到了一个意想不到的答案

时间:2013-03-12 16:15:17

标签: python

我正在为python制作twitch.tv API包装器,当我运行以下代码时,在print (t.getstatus)它将打印:<bound method twitchchannel.getstatus of <__main__.twitchchannel instance at 0x0198D3A0>>而不是变量的值。我做错了什么?

import urllib2
import json

class twitchchannel():
    def __init__ (self,channel):
        self.channel = channel
        url = 'https://api.twitch.tv/kraken/channels/' + channel
        dict1 = json.loads(urllib2.urlopen(url).read())
        self.status = dict1 ['status']
        self.display_name = dict1 ['display_name']
        self.mature = dict1 ['mature']
        self.chanurl = dict1 ['url']
        self.created_at = dict1 ['created_at']
        self.teams = dict1 ['teams']
        self.game = dict1 ['game']
        self.updated_at = dict1 ['updated_at']
        print dict1
    def getstatus(self):
        return self.status

t = twitchchannel('ethotv')

print (t.getstatus)
print (t.status) #This works

3 个答案:

答案 0 :(得分:0)

您需要调用 t.getstatus()方法:

print (t.getstatus())

答案 1 :(得分:0)

你应该像函数一样调用函数:)

   print (t.getstatus())

答案 2 :(得分:0)

试试print (t.getstatus())。注意额外的括号。您收到的消息实际上指的是方法getstatus所在的地址(instance at 0x0198D3A0)。重要status的作用是因为它不是一种方法。