第7 章面向对象程序设计

必背必记

1、定义类
在Python 中,类的定义使用class 关键字来实现,语法如下:

class ClassName:
'''类的帮助信息''' # 类文档字符串
statement # 类体

参数说明:
  ClassName:用于指定类名,一般使用大写字母开头,如果类名中包括两个单词,第二
个单词的首字母也大写,这种命名方法也称为“驼峰式命名法”,这是惯例。当然,也可根
据自己的习惯命名,但是一般推荐按照惯例来命名。
  statement:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定
义类时,没想好类的具体功能,也可以在类体中直接使用pass 语句代替。

class Student(object):

    def __init__(self, name, score):  # _init_特殊方法  方法属性 self.name self.score
        self.name = name
        self.score = score

    def print_score(self):    # 方法
        print('%s: %s' % (self.name, self.score))     

 

2、创建类的实例

class 语句本身并不创建该类的任何实例。所以在类定义完成以后,可以创建类的实例,
即实例化该类的对象。创建类的实例的语法如下:

classname(parameterlist)

  其中,ClassName 是必选参数,用于指定具体的类;parameterlist 是可选参数,当创建
一个类时,没有创建__init__()方法,或者__init__()方法只有一个self 参数时,parameterlist
可以省略。

3、创建类的成员并访问

所谓实例方法是指在类中定义的函数。该函数是一种在类的实例上操作的函数。实例
方法的第一个参数必须是self,并且必须包含一个self 参数。创建实例方法的语法格式如下:

def functionName(self,parameterlist):
  block

参数说明:
  functionName:用于指定方法名,一般使用小写字母开头。
  self:必要参数,表示类的实例,其名称可以是self 以外的单词,使用self 只是一个惯
例而已。
  parameterlist:用于指定除self 参数以外的参数,各参数间使用逗号“,”进行分隔。
  block:方法体,实现的具体功能。
  实例方法创建完成后,可以通过类的实例名称和点(.)操作符进行访问,语法格式如
下:

instanceName.functionName(parametervalue)

参数说明:
  instanceName:为类的实例名称。
  functionName:为要调用的方法名称。
  parametervalue:表示为方法指定对应的实际参数,其值的个数与创建实例方法中
parameterlist 的个数相同。

4、创建用于计算的属性
通过@property 创建用于计算的属性的语法格式如下:

@property
def methodname(self):
    block

参数说明:
  methodname:用于指定方法名,一般使用小写字母开头。该名称最后将作为创建的属
性名。
  self:必要参数,表示类的实例。
  block:方法体,实现的具体功能。在方法体中,通常以return 语句结束,用于返回计
算结果。

5、继承的基本语法
  通过继承不仅可以实现代码的重用,还可以通过继承来理顺类与类之间的关系。在
Python 中,可以在类定义语句中,类名右侧使用一对小括号将要继承的基类名称括起来,
从而实现类的继承。具体的语法格式如下:

class ClassName(baseclasslist):
    '''类的帮助信息'''     #类文档字符串
    statement     #类体

参数说明:
  ClassName:用于指定类名。
  baseclasslist:用于指定要继承的基类,可以有多个,类名之间用逗号“,”分隔。如果
不指定,将使用所有Python 对象的根类object。
  ''' 类的帮助信息''' :用于指定类的文档字符串,定义该字符串后,在创建类的对象时,
输入类名和左侧的括号“(”后,将显示该信息。
  statement:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定
义类时,没想好类的具体功能,也可以在类体中直接使用pass 语句代替。

6、方法重写
基类中定义的harvest()方法,无论派生类是什么水果都显示“水果……”,如果想
要针对不同水果给出不同的提示,可以在派生类中重写harvest()方法。例如,在创建派
生类Orange 时,重写harvest()方法的代码如下:

01 class Orange(Fruit):     # 定义橘子类(派生类)
02 color = "橙色"
03 def __init__(self):
04 print("\n 我是橘子")
05 def harvest(self, color):
06 print("橘子是:" + color + "的!")     # 输出的是形式参数color
07 print("橘子已经收获……")
08 print("橘子原来是:" + Fruit.color + "的!");    # 输出的是类属性color

英语词汇

背记有法,让英语不再成为编程学习的拦路虎!

parameter
含义:参数;参量

init
含义:初始化

self
含义:自己;本人;本性;私利
同一的;纯净的;单一的

function
含义:功能,作用;应变量,
函数;职务

block
含义:块;街区;阻止;阻塞;限制

protected
含义:防护;保护

private
含义:私有的,私人的;秘密的

harvest
含义:收割,收成

harvest
含义:收割,收成

posted @ 2018-09-19 15:09  何守辉  阅读(181)  评论(0编辑  收藏  举报