打印在类方法python中不可见

2024-05-23 23:23:35 发布

您现在位置: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

Tags: 实例方法name消息helloworldinitdef
2条回答

您可以在the official python documentation找到一个关于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)

Python需要在方法周围加括号才能调用它们。如果不包含它们,只需返回绑定方法对象(在某些情况下很有用)。你想要的是:

zing.zap()

相关问题 更多 >