【问题标题】:Can't return a dict for a method Python无法返回方法 Python 的字典
【发布时间】:2020-07-03 17:18:23
【问题描述】:

我在 Windows 上使用 Python 3.8.3,我是 OOP 的新手。

我正在为工作做一些 trello 的工作,我想创建一个 trello 对象,这样我就可以在各种函数中调用它们。我以前在 FP 下工作过,但由于转换它对我来说没有按预期工作。

我想要做的是从方法中返回一个dict 以分配给一个变量,但是当我进行测试并打印结果时,这就是我得到的:

<function TrelloInfo.members at 0x00000...>

代码如下:

class TrelloInfo():
    
    def __init__(self):
    
        # account key and token
        self.query = {
        'key': 'key',
        'token': 'token'
        }

    def cards(self):
        # get card info
        urlcards = "cardurl"

        responsecards = requests.request(
        "GET",
        urlcards,
        params=self.query
        )

        cleanedupcards = json.loads(responsecards.text)

        return cleanedupcards

    def members(self):

        # get member info
        urlmembers = "memberurl"

        responsemembers = requests.request(
        "GET",
        urlmembers,
        params=self.query
        )

        cleanedupmembers = json.loads(responsemembers.text)

        return cleanedupmembers

    def lists(self):
        # get lists in the board
        urllists = "listsurl"

        responselists = requests.request(
        "GET",
        urllists,
        params=self.query
        )

        cleaneduplists = json.loads(responselists.text)

        return cleaneduplists

    def labels(self):
        # get label info
        urllabels = "labelsurl"

        responselabels = requests.request(
        "GET",
        urllabels,
        params=self.query
        )

        cleaneduplabels = json.loads(responselabels.text)

        return cleaneduplabels
    
test = TrelloInfo

cards = test.cards
members = test.members

print(members)

我觉得我错过了一些非常小的东西,但我一直无法找到答案。

【问题讨论】:

    标签: python dictionary oop return-value


    【解决方案1】:

    您需要创建类的实例,而不是将类本身分配给变量,这基本上只是为该类创建别名:

    test = TrelloInfo()
    

    然后,您需要调用该实例的方法:

    cards = test.cards()
    members = test.members()
    

    【讨论】:

      【解决方案2】:

      您的问题是您实际上将members 设置为指向类方法成员的指针而不执行它。

      您必须添加() 才能执行它:

      test = TrelloInfo()
      
      cards = test.cards()
      members = test.members()
      

      【讨论】:

      • 等到你把类似的东西发给审核后,你才能得到报酬:P
      • #thatsthedream...慢慢地提高我的技能,以便能够全职做这件事。
      猜你喜欢
      • 2012-11-23
      • 2018-01-31
      • 1970-01-01
      • 2015-09-24
      • 2014-10-06
      • 2015-12-13
      • 2014-01-24
      • 1970-01-01
      • 2013-02-18
      相关资源
      最近更新 更多