如何解决我如何在 python 中打印一组自定义对象?
我是一名网络专家,正在尝试学习一些 Python 以实现自动化。我很难掌握 OOP。编写了下面的脚本(我认为并不完美)进行实验,我不断得到以下输出:
main.Router 对象在 0x0000021C68033E80
我的脚本:
client.on("ready",() => {
client.user.setStatus("online");
client.user.setActivity('My prefix is "!" ',{ type: "PLAYING"})
})
我知道通过打印列表,我只是打印了内存指针指向的位置,但是我如何使它成为实际打印的值本身?感谢帮助!
解决方法
您需要覆盖 __repr__
方法以更改对象的字符串表示形式。举个例子:
In [1]: class A1:
...: def __init__(self,a,b):
...: self.a = a
...: self.b = b
...:
In [2]: class A2:
...: def __init__(self,b):
...: self.a = a
...: self.b = b
...: def __repr__(self):
...: kvps = [f"{k}={v}" for k,v in vars(self).items()]
...: return f"{type(self).__name__}({','.join(kvps)})"
...:
In [3]: A1(1,2)
Out[3]: <__main__.A1 at 0x7f533357fe20>
In [4]: A2(1,2)
Out[4]: A2(a=1,b=2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。