打印在类方法中不可见-python
我在实例化的类中调用一个方法来打印“Hello World”。构造函数在控制台中打印其消息,但不打印另一个方法。我是Python新手,有人能解释为什么吗打印在类方法中不可见-python,python,Python,我在实例化的类中调用一个方法来打印“Hello World”。构造函数在控制台中打印其消息,但不打印另一个方法。我是Python新手,有人能解释为什么吗 class Zapper: def __init__(self, name): print "My name is " + name Zapper.zap def zap(): print "Hello World!" zing = Zapper('Frank') zing.zap Python需要在方法
class Zapper:
def __init__(self, name):
print "My name is " + name
Zapper.zap
def zap():
print "Hello World!"
zing = Zapper('Frank')
zing.zap
Python需要在方法周围加括号才能调用它们。如果不包含它们,只需返回绑定方法对象(在某些情况下很有用)。你想要的是:
zing.zap()
您可以在上找到Python类的详细介绍 基本上,您希望
zap
成为一个实例方法,并始终在类的实例上调用它
下面是经过更正和扩展的示例:
class Zapper:
def __init__(self, name):
print "My name is " + name
self.name = name
self.zap()
def zap(self):
print "Hello World, my name is still " + self.name
zing = Zapper('Frank')
zing.zap()
请注意,我们将name
的值存储在名为self.name
的实例变量中。若要稍后访问此变量,需要对实例进行引用。这就是为什么zap
将self
作为其第一个参数。现在我们也可以在zap
方法中使用self.name
在内部,点表示法转换如下:
self.zap() => Zapper.zap(self)
zing.zap() => Zapper.zap(zing)
您忘记了Zapper.zap
末尾的()
。