class Mammal(object):
def __init__(self, name):
self.name = name
def get_name(self):
return self.name
def say(self):
print("What does the " + self.name + " says")
以上是我的代码
当我尝试print(Mammal("Fox").say())
时,我得到What does the Fox says
这是正确的,但我又得到了另一个None
。有什么问题?
答案 0 :(得分:2)
这是因为方法say
返回None,它只是打印一些东西
如果没有描述的返回语句
>>> print (Mammal("Fox").say())
None
>>> def a():
... return True
>>> def b():
... pass
>>> print(a())
True
>>> print(b())
None
但是,如果你想要更加pythonic,你应该让你的say
方法返回字符串而不是如下所示:
def say(self):
return "What does the " + self.name + " says"
这样你只需在调用方法时获取字符串,并且实际上不打印任何内容:
>>> print(Mammal("Fox").say())
What does the Fox says
但是,如果您想坚持使用该方法进行打印,可以按照以下步骤进行:
Mammal("Fox").say()
或:
fox = Mammal('Fox')
fox.say()
答案 1 :(得分:1)
方法say()
返回None
。它还会打印一个字符串。
尝试:
Mammal("Fox").say()
要尝试的另一件事是将字符串提取到方法:
def what_should_i_say(self):
return "What does the " + self.name + " says"
def say(self):
print self.what_should_i_say()
然后
print Mammal("Fox").what_should_i_say()
Mammal("Giraffe").say()
答案 2 :(得分:0)
Mammal("Fox").say()
就是你所需要的一切。
哺乳动物(“Fox”)。说()返回无,因此您实际上是在键入:
print(None)
恰好它会打印出来计算说明.say()返回None。
答案 3 :(得分:0)
您添加了额外的print
。 Mammal("Fox").say()
应该有用。