我的对象没有显示方法?
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 允许您更改它可以让您深入了解系统的工作方式,而不是其他语言
我来自 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 允许您更改它可以让您深入了解系统的工作方式,而不是其他语言