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。有什么问题吗?
发布于 2014-04-02 07:31:04
这是因为方法say不返回None,它只是打印一些东西,如果它没有描述的返回语句,那么在python中它就不会返回。
>>> 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()发布于 2014-04-02 07:34:24
方法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()发布于 2014-04-02 07:32:39
Mammal("Fox").say()这就是你所需要的。
哺乳动物(“Fox”).say()返回None,因此您实际上是在键入:
print(None)它恰好打印了一句谚语来计算.say()不返回任何内容。
https://stackoverflow.com/questions/22804408
复制相似问题