![](/img/trans.png)
[英]Python Class Confusion: How to print object attributes returned by a function
[英]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.