繁体   English   中英

通过 python function 打印 class object 内容

[英]Print class object content through python function

我正在阅读一些主题,但我不明白如何进行。 我有一个 function 和 class 如下。 如何通过 function 打印 class 内容?

def get_address(address):
    resource = 'address/{0}?format=json'.format(address)
    response = util.call_api(resource)
    json_response = json.loads(response)
    return Address(json_response)

class Address:
    def __init__(self, a):
        self.hash160 = a['hash160']
        self.address = a['address']
        self.n_tx = a['n_tx']
        self.total_received = a['total_received']
        self.total_sent = a['total_sent']
        self.final_balance = a['final_balance']
        self.transactions = [Transaction(tx) for tx in a['txs']]

我试图print(get_address('*******************')) ,但这会返回 object 名称。 然后,将以下代码添加到 class 但它返回一个抛出错误的元组。 如何正确打印所有这些元素?

def __str__(self):
        return (self.hash160,
        self.address,
        self.n_tx,
        self.total_received,
        self.total_sent,
        self.final_balance,
        self.transactions)

您需要将整个元组转换为字符串:

def __str__(self):
    return str((self.hash160,
    self.address,
    self.n_tx,
    self.total_received,
    self.total_sent,
    self.final_balance,
    self.transactions))

或者您可以使用 f 字符串(或只是常规字符串连接)来构建自己的:

def __str__(self):
    return f'hash: {self.hash160}, ' +
        f'address: {self.address}, ' +
        ...

请注意,您可能还希望通过return str(self)来实现__repr__(self) self) 。 根据您尝试 output 和 class 的方式,这可能是必要的。

__str__需要返回一个字符串,因为它是 API ,它声明了您的 class 实例将如何表示为字符串。 您可以将该元组中的所有内容放入字典中并将其包装在 json.dumps() 中,以将其解析为 json 字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM