代码改变世界

[python]类

2015-12-03 18:24  sophia194910  阅读(205)  评论(0编辑  收藏  举报

1. 简介

类是面向对象编程的核心,它扮演相关数据及逻辑的容器角色。

它们提供了创建“真实”对象的蓝图。

2. 语法格式

def ClassName(base_class[es]):
    "optional doc string"
    static_member_declarations
    method_declarations

分为以下几块:

  • class关键字定义类。
  • 可以提供一个可选的父类或者说基类,如果没有合适的基类,那就使用object作为基类。
  • 文档字符串
  • 静态成员定义
  • 方法定义

3. 类的定义

class FooClass(object):
    """1st class: FooClass"""
    version = 0.1
    
    def __init__(self, nm = 'John'):
        """constructor"""
        self.name = nm
        print 'Create a class instance for', nm
        
    def show_name(self):
        """display name"""
        print 'Your name is', self.name
        print 'My name is', self.__class__.__name__
        
    def show_version(self):
        """display version"""
        print 'Version is', self.version
    
    def addMe2Me(self, x):
        """add"""
        return x + x

 __init__():为特殊方法。

  • 所有名字开始和结束各有2个下划线的方法,都是特殊方法。
  • 当类实例被创建时, __init__()方法会自动执行,类似于构建函数。
  • 目的是执行一些该对象必要的初始化工作。

self:类实例自身的引用。

4. 创建类实例

fool = FooClass()

执行结果:

Create a class instance for John

如果提供参数:

foo2 = FooClass('Jane')

执行结果:

Create a class instance for Jane

5. 方法调用

fool.show_name()
fool.show_version()
print fool.addMe2Me(5)
print fool.addMe2Me('xyz')

运行结果:

Your name is John
My name is FooClass
Version is 0.1
10
xyzxyz