为什么此对象属性不作为列表打印?

时间:2015-07-19 20:38:44

标签: python

我的班级定义:

<script type="text/javascript">
$(document).on("keyup", function() {
var sum = 0;
$(".totalCal").each(function(){
    sum += +$(this).val();
});
$("#total").val(sum);

document.getElementById('grandTotal').innerHTML = sum.toFixed(2);
});
</script>

当我这样做时:

class node:
    def __init__(self, parent, daughters, edge):
        self.parent = parent
        self.daughters = daughters
        self.edge = edge
        trie.append(self)
        self.index = len(trie) - 1
        trie[parent].daughters.append(self)

除了'女儿'之外,它会正确打印所有内容。 Index是一个整数,edge是一个整数,parent是一个整数,但'daughters'应该是一个列表。相反,它给了我某种对象语法:

    trie = [node(0, [], 0)]
    currentNode = trie[0]
    print('Current Node: ', currentNode.parent, currentNode.daughters, currentNode.edge, currentNode.index)

为什么传递列表有困难?

2 个答案:

答案 0 :(得分:1)

打印一个列表,你可以看到输出中的方括号[<__main__.node object at 0x100786dd8>],这是一个包含1个节点对象的列表

您还可以通过使用type(currentNode.daughters)查看该属性的类型进行确认,例如通过打印输出

答案 1 :(得分:0)

要解决此问题,请在0x100786dd8&gt;处创建一个有意义的文本而不是&lt; main .node对象。 ,您可以为班级提供__str__功能:

class node:
def __init__(self, parent, daughters, edge):
    self.parent = parent
    self.daughters = daughters
    self.edge = edge
    trie.append(self)
    self.index = len(trie) - 1
    trie[parent].daughters.append(self)
def __str__(self):
    return "some string !"