8.1 把事务拆分成类
- 对象是由“类”定义的,我们可以把“类”当成一种把对象分类归组分类的方法
- 我们用class关键字来定义类,后面跟一个名字。我们把这个类命名为Things并用pass语句告诉我们不会给出更多的信息了。当我们想提供,但是却不想立即提供一个类或者函数,却暂时不想填入具体信息的时候就可以使用pass
-
>>> class Thing: pass
Python一个类是另一个类的孩子,就在新类的名字后面用括号加上父亲类(父类)
-
>>> class Inanimate(Thing): pass
增加属于类的对象:把Reginald“引入”到Python中,创建一个属于Giraffes类的对象,并把它赋值给变量reginald。
-
reginald = Giraffes()
要想对象有用,在创建类的时候我们还要定义函数,这样这个类的对象就可以使用这些函数
- 用函数来表示类的特征
- “特征”就是一个类家族中的所有成员(还有它的子类)共同特点,比如Animals类
-
class Animals(Animate): def breath(self): pass def move(self): pass def eat_food(self): pass
要操作Reginald我们用运算符“.”,和函数的名字来调用对象的函数
-
reginald = Giraffes()reginald.move()reginald.eat_leaves_from_trees()
8.2 对象和类的另一些实用功能
- 函数继承:任何在父类中定义过的函数在子类中都可以用
- 从函数里调用其他函数:
- 想要从Giraffes类的某个函数调用move函数,我们则要用到self参数。self参数可以用来从类中的一个函数调用另外一个函数,假设我们要给Giraffes类增加一个叫find_food的函数的话:
-
class Giraffes(Mammals): def find_food(self): self.move() print("I love food") self.eatfood()
8.3初始化对象
-
我们创建对象的时候,有时我们会设置一些值以便将来使用(这些值也叫“属性”,property)初始化对象是为奖励啊使用它做准备
-
创立一个__init__函数,两边各有两个下划线,一共四个下划线
-
用def __init__(self,spots):我们定义了一个有两个参数的__init__函数,init函数也需要把self当成第一个参数,接下来我们把参数spots设置给self参数的一个叫giraffe_spots的对象变量(也就是他的属性,可以理解为把参数spots的值(用对象变量giraffe_spots)保存下来以后用
-
>>> class giraffres: def __init__(self,spots): self.giraffe_spots = spots
初始化函数工作方法
-
ozwald = Giraffes(100)gertrude = Giraffes(150)print(ozwald.giraffe_spots)print(gertrude.giraffe_spots)
当我们在一个类的内部创建函数时,我么用self参数来指向这些变量或函数(self.giraffe_spots)
- 学到了什么:
- 创建一系列事物的类
- 用类来生成对象,也叫实例
- 子类是如何继承父类中的函数的
- 如何调用对象中的函数
- 对象变量是一种把值保存到对象中的方法