我的对象是不显示方法?

时间:2015-02-07 11:15:25

标签: python class object

我来自Java背景,我在Python中是全新的。

我尝试创建一个简单的类程序。问题是我无法在方法中显示。

代码:

class Employee(object):

    def __init__(self, x, y):
        self.x=x
        self.y=y

        def display():
            print("x: ", x)
            print("y: ", y)


            #Here, I'm creating an objects..

            myObj=Employee("print 1", "print 2")
            myObj.display()

请帮助..为什么我无法显示? 这段代码有问题吗?我试图创建自己的代码。

谢谢!

1 个答案:

答案 0 :(得分:4)

你有缩进问题。这将解决它。

class Employee(object):

    def __init__(self, x, y):
        self.x=x
        self.y=y

    def display(self): # Have to include the `self` argument.
        print("x: ", self.x)
        print("y: ", self.y)

# Here, I'm creating an objects..
myObj=Employee("print 1", "print 2")
myObj.display()

我不熟悉Java,但如果它与大多数其他语言一样,那么空格不会像Python那样对待。在这里,你真的必须小心注意缩进级别你正在定义一个函数或一个类。

在您的示例中,您基本上在Employee的display方法中定义了__init__方法。事实上,这将是一个非常奇怪的程序设计选择。很可能你并不是这个意思! ;)

编辑:正如评论中提到的那样,总是有一个隐式self参数作为实例方法的第一个参数传递。此参数名称不是硬编码的。它可以重写为this,但这是一个非常强大的惯例。打破它将是毫无意义的,通常不推荐。但是,了解Python允许您更改它可让您深入了解系统如何工作而不是其他语言