为什么这段Python代码没有输出?
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,但其实很多时候,解决这些问题的方法是相似的。
比如说,如果你在使用一个库的时候发现它的某个功能不工作,首先你可以检查一下文档,看看有没有说明这个功能的使用方法。文档就像是一本说明书,里面会告诉你怎么正确使用这个工具。
如果文档没有帮助,接下来你可以尝试在网上搜索一下,看看其他人有没有遇到类似的问题。很多时候,别人也会在论坛或者社区里分享他们的解决方案。
另外,调试也是一个很重要的步骤。你可以通过打印一些信息来查看程序运行到哪里了,这样可以帮助你找到问题的根源。
总之,遇到问题时不要慌张,先查文档,再搜索,最后调试,通常都能找到解决办法。
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',) {}
#