2024-05-23 23:23:35 发布
网友
我调用实例化类中的一个方法来打印“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
您可以在the official python documentation找到一个关于Python类的介绍。你知道吗
基本上,您希望zap成为一个实例方法,并且总是在类的实例上调用它。你知道吗
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。你知道吗
name
self.name
self
在内部,点表示法转换如下:
self.zap() => Zapper.zap(self) zing.zap() => Zapper.zap(zing)
Python需要在方法周围加括号才能调用它们。如果不包含它们,只需返回绑定方法对象(在某些情况下很有用)。你想要的是:
zing.zap()
您可以在the official python documentation找到一个关于Python类的介绍。你知道吗
基本上,您希望
zap
成为一个实例方法,并且总是在类的实例上调用它。你知道吗下面是您更正和扩展的示例:
注意,我们将
name
的值存储在名为self.name
的实例变量中。若要稍后访问此变量,需要有对实例的引用。这就是zap
获取self
作为第一个参数的原因。现在我们也可以在zap
方法中使用self.name
。你知道吗在内部,点表示法转换如下:
Python需要在方法周围加括号才能调用它们。如果不包含它们,只需返回绑定方法对象(在某些情况下很有用)。你想要的是:
相关问题 更多 >
编程相关推荐