首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >打印python对象不会产生预期的<__main__.myclass ...>输出

打印python对象不会产生预期的<__main__.myclass ...>输出
EN

Stack Overflow用户
提问于 2017-10-28 00:41:46
回答 2查看 61关注 0票数 0

当我创建这样一个类时

代码语言:javascript
代码运行次数:0
运行
复制
class Node(object):
    def __init__(self):
        pass

node = Node()
print node

打印<__main__.Task object at 0x7fc9be21cd0>。但是,我使用的是一个库,我想打印一个对象,这产生了以下结果:

代码语言:javascript
代码运行次数:0
运行
复制
foo.node(path="/test/1/2", value='Text')

这是怎么建造的?值似乎不是成员变量或任何可访问的?我在期待像<__main__.foo object at ...这样的东西

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-16 18:19:33

当我期待一个更有解释性的答案时,我在书"Fluent Python“中找到了答案--基本上这个库的作者实现了__repr__

代码语言:javascript
代码运行次数:0
运行
复制
class Node:
    def __init__(self, path=0, value=0):
        self.path = path
        self.value = value

    def __repr__(self):
        return "foo.node(path="{0}", value='{1}')".format(self.path, self.value)

repr 特殊方法是由repr内置的方法调用的,以获取对象的字符串表示以供检查。如果我们没有实现repr,将在控制台中显示向量实例,比如<Vector object at 0x10e100070>

票数 0
EN

Stack Overflow用户

发布于 2017-10-28 00:49:51

它是由__repr__()方法生成的。和所有其他普通方法一样,它正在运行的实例作为第一个参数传递。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46985177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档