Python 类返回语句不打印任何输出

Python 类返回语句不打印任何输出,python,class,return,Python,Class,Return,我正在学习有关类的知识,并且对return语句(它是一个语句吗?我希望是这样)有问题,程序什么也不输出,只是结束时什么也不做 class className: def createName(self, name): self.name = name def displayName(self): return self.name def saying(self): print("Hello %s" % self.name)

我正在学习有关类的知识,并且对
return
语句(它是一个语句吗?我希望是这样)有问题,程序什么也不输出,只是结束时什么也不做

class className:
    def createName(self, name):
        self.name = name
    def displayName(self):
        return self.name
    def saying(self):
        print("Hello %s" % self.name)

first = className()
second = className()

first.createName("Jack")
second.createName("Joy")

first.displayName()
second.displayName()

我知道我做错了什么,但我真的不知道是什么。非常感谢您的帮助。

要回答您的问题-
return
不打印任何内容,但有点让人困惑,因为交互式python提示符会打印最后一条语句的值,例如:

Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+1
2
但是,如果您创建了一个内容为
1+1
的文件,并将其作为python脚本运行,则不会打印任何内容

既然你说你是个新手,我就给你一些如何改进代码的建议

class className:
    def createName(self, name):
        self.name = name
    def displayName(self):
        return self.name
    def saying(self):
        print("Hello %s" % self.name)
className
有冗余,您应该只重命名类
Name
-类也应该始终继承
对象
,所以让我们稍微更改一下您的定义:

class Name(object):
    def createName(self, name):
        self.name = name
    def displayName(self):
        return self.name
    def saying(self):
        print("Hello %s" % self.name)
通过重写类
\uuuu init\uuuu()
方法,可以自动创建一些内容。e、 g:

class Name(object):
    def __init__(self, name):
        self.name = name
    def displayName(self):
        return self.name
    def saying(self):
        print("Hello %s" % self.name)
这样,您就可以在实例化类时初始化您的名称,例如

first = Name("Jack")
其次,
display
是通过重写方法
\uuuu repr\uuu
进行惯用处理的

class Name(object):
    def __init__(self, name):
        self.name = name
    def __repr__(self):
       return self.name
    def saying(self):
        print("Hello %s" % self.name)
这样,您只需要做两件事:

>>> n = Name("Jack")
>>> print n
Jack

简单地看一下代码,它看起来像是您首先调用的。displayName(),它只返回名称。如果要打印某些内容,您需要调用:first.saying()或print(“Hello%s”%first.displayName()),我知道了,但是return不应该返回self.name中的任何内容吗?是的,但您没有打印出来,对吗?你只是把它退了。