Python打印额外的内容

use*_*119 -1 python

为什么以下代码最后打印"无"?

class Square:
  def printx(self):
    print "A"

test = Square()
print test.printx()
Run Code Online (Sandbox Code Playgroud)

输出:

A
None
Run Code Online (Sandbox Code Playgroud)

为什么不只打印字母"A"?

Sha*_*wal 5

当你打电话时printx,print那里的声明打印出"A".然后该方法结束,并返回a None,即print最后一行中的语句打印的内容.

你可以修复它 -

class Square:
  def printx(self):
    print "A"

test = Square()
test.printx()
Run Code Online (Sandbox Code Playgroud)

要么

class Square:
  def printx(self):
    return "A"

test = Square()
print test.printx()
Run Code Online (Sandbox Code Playgroud)

虽然基于语义,但第一种选择会更有意义.

  • 我将第二个方法中的成员函数更改为名称``getx()``来解释你正在做的事情的语义. (3认同)

Ste*_*ann 5

因为你有两个print陈述.您正在打印'A'以及返回值printx.