我的对象没有显示方法?

My object is not displaying method?

我来自 Java 背景,我是 Python 的新手。

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

代码:

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()

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

谢谢!

您遇到了缩进问题。这将修复它。

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 不同。在这里,您确实必须特别注意定义函数或 class 中的 缩进级别

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

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