声明python类,并创建类实例。(核心Python编程)

2024-09-26 18:17:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从“核心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

在我继续之前,我真的很想知道这里发生了什么。 希望有人能帮我!在

提前谢谢!:)


Tags: 实例instancenameselfdataobjectinitversion
3条回答

看起来你还没有缩进类的方法。代码如下:

class FooClass(object):
    ...

def __init__(self, nm='John Doe'):
    ...

您正在声明一个名为FooClass的类和一个名为__init__的函数。类将有一个默认的空构造函数。如果改为缩进为:

^{pr2}$

您有一个类FooClass,其中__init__方法作为构造函数。在

你似乎有缩进问题。就像函数、条件语句和循环中的代码必须缩进才能让Python将其视为“内部”代码一样,您的各种类方法需要缩进超过class ...:行,使其成为类的部分,而不仅仅是(单独的)在之后定义的函数。所以

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

其他方法也一样。在

嗯,我也在学习python,我也在参考这本书,但我的书是第一版。但是,我从你的代码中分析出它没有缩进好吧。拜托好好检查一下,希望它能起作用好的。谢谢. 在

相关问题 更多 >

    热门问题