为什么这段Python代码没有输出?

0 投票
4 回答
2246 浏览
提问于 2025-04-15 17:55

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,但其实很多时候,解决这些问题的方法是相似的。

比如说,如果你在使用一个库的时候发现它的某个功能不工作,首先你可以检查一下文档,看看有没有说明这个功能的使用方法。文档就像是一本说明书,里面会告诉你怎么正确使用这个工具。

如果文档没有帮助,接下来你可以尝试在网上搜索一下,看看其他人有没有遇到类似的问题。很多时候,别人也会在论坛或者社区里分享他们的解决方案。

另外,调试也是一个很重要的步骤。你可以通过打印一些信息来查看程序运行到哪里了,这样可以帮助你找到问题的根源。

总之,遇到问题时不要慌张,先查文档,再搜索,最后调试,通常都能找到解决办法。

class a(str):
    def b(self,*x,**y):
        print str.decode(self,*x,**y)

b=a()
b.b('utf-8','aaa') # This prints nothing, why?

4 个回答

4

因为你在初始化 b(作为 a 的一个对象)时,没有给 str 任何值。

4

试着打印一下 (self, x, y)。你会看到一些东西。

('', ('utf-8', 'aaa'), {})

所以在 str.decode(self,*x,**y) 这个地方,self 就像是一个空字符串。

7

首先试着给你的字符串初始化一个值:

# classes should have capitalized names ...
class a(str):
    def b(self,*x,**y):
        print 'debugging: ', self, x, y
        print str.decode(self, *x,**y)

if __name__ == '__main__':
    b=a('aaa')
    b.b('utf-8')

    b=a()
    b.b('utf-8')

# => output

# debugging:  aaa ('utf-8',) {}
# aaa
# debugging:   ('utf-8',) {}
#

撰写回答