#!/usr/bin/env Python
# coding=utf-8
__metaclass__ = type
class Person:
    def __init__(self, name):
        self.name = name
    def getName(self):
        return self.name
    def color(self, color):
        print "%s is %s" % (self.name, color)


新式类:

__metaclass__ = type,意味着下面的类是新式类。2.x版本使用,3.0以上版本不需要。


定义类:

class Person,这是在声明创建一个名为"Person"的类。类的名称一般用大写字母开头,这是惯例。如果名称是两个单词,那么两个单词的首字母都要大写,例如 class HotPerson,这种命名方法有一个形象的名字,叫做“驼峰式命名”。


定义方法:

def color(self, color) 函数(方法)的命名方法是以 def 发起,并且名称首字母不要用大写,可以使用 aa_bb 的样式,也可以使用 aaBb 的样式,一切看你的习惯了。

不过,要注意的是,类中的函数(方法)的参数跟以往的参数样式有区别,那就是每个函数(方法)必须包括 self 参数,并且作为默认的第一个参数。这是需要注意的地方。


初始化:

def __init__,这个函数是一个比较特殊的,并且有一个名字,叫做初始化函数。

此例子中的初始化函数,就意味着实例化的时候,要给参数 name 提供一个值,作为类初始化的内容。通俗点啰嗦点说,就是在这个类被实例化的同时,要通过 name 参数传一个值,这个值被一开始就写入了实例中,成为了实例的一个属性。比如:

girl = Person('wangguniang')

girl 是一个实例对象,就如同前面所说的一样,它有属性和方法。这里仅说属性吧。当通过上面的方式实例化后,就自动执行了初始化函数,让实例 girl 就具有了 name 属性。同时实例还会继承类的属性。

print girl.name

执行这句话的结果是打印出 wangguniang。

这就是初始化的功能。简而言之,通过初始化函数,确定了这个实例的“基本属性”(实例是什么样子的)。比如上面的实例化之后,就确立了实例 girl 的 name 是"wangguniang"。

转载于:https://blog.51cto.com/12676522/1964999