我正在从“核心python编程第二版”学习python
“如何在课堂上创建实例”。第84页。在
示例如下:
在类.py公司名称:
class FooClass(object):
"""my very first class: FooClass"""
version = 0.1 # class (data) attribute
def __init__(self, nm='John Doe'):
"""constructor"""
self.name = nm # class instance (data) attribute
print'Created a class instance for', nm
def showname(self):
"""display instance attribute and class name"""
print 'Your name is', self.name
print 'My name is', self.__class__.__name__
def showver(self):
"""display class(static) attribute"""
print self.version # references FooClass.version
def addMe2Me(self, x): # does not use 'self'
"""apply + operation to argument"""
return x + x
然后我必须创建类实例:
在我的翻译中,我执行以下操作:
^{pr2}$但什么也没发生。它应该打印init。在
当我使用
fool.showname()
和fool.showver
它不打印任何内容。上面写着
FooClass' object has no attribute 'showver
在我继续之前,我真的很想知道这里发生了什么。 希望有人能帮我!在
提前谢谢!:)
看起来你还没有缩进类的方法。代码如下:
您正在声明一个名为
^{pr2}$FooClass
的类和一个名为__init__
的函数。类将有一个默认的空构造函数。如果改为缩进为:您有一个类
FooClass
,其中__init__
方法作为构造函数。在你似乎有缩进问题。就像函数、条件语句和循环中的代码必须缩进才能让Python将其视为“内部”代码一样,您的各种类方法需要缩进超过
class ...:
行,使其成为类的部分,而不仅仅是(单独的)在之后定义的函数。所以其他方法也一样。在
嗯,我也在学习python,我也在参考这本书,但我的书是第一版。但是,我从你的代码中分析出它没有缩进好吧。拜托好好检查一下,希望它能起作用好的。谢谢. 在
相关问题 更多 >
编程相关推荐